【小白成长撸】--顺序栈(C语言版)

时间:2023-03-09 05:37:48
【小白成长撸】--顺序栈(C语言版)
 // 顺序栈.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"//test1.0--栈表仅限Int类型
#include <stdio.h> #define true 1
#define false 0 typedef struct stack_type
{
int stack[];//最大容纳100个元素
int top;
}stacktype; int pushes(stacktype *s, int x);//压入栈
int pops(stacktype *s);//删除栈
void initiatest(stacktype *s);//初始化 int main(void)
{
stacktype L;
stacktype *sta = &L;//失败过,如果没有L这个元素,直接stacktype *sta,编译器会报“未初始化的局部变量“sta””
int i, x,m; initiatest(sta); i = ; for (;;i++)
{
scanf_s("%d", &x); if (x == -)
{
break;
} pushes(sta, x);
} for (m = ; m < i; m++)
{
printf_s("%d ", sta->stack[m]);
} return ;
} int pushes(stacktype *s, int x)
{
if (s->top >= )
{
return (false);
}
else
{
s->top++;
s->stack[s->top] = x;
return(true);
}
} int pops(stacktype *s)
{
if (s->top < )
{
return (false);
}
else
{
s->top--;
return (s->stack[s->top + ]);
}
} void initiatest(stacktype *s)
{
s->top = -;
return ;
} //参考:http://www.cnblogs.com/yuxi/archive/2007/02/10/647076.html
//和一些书籍,开始我用的双指针,因为我认为修改指针的内容,就应该在子函数中修改指针的指针,也就是指针的地址,但会出现错误。