将顺序栈的结构定义为:
#define M 100 //栈的空间
typedef struct
{ int data[M];
int top;
} SqStack;
试写出SqStack的初始化函数、入栈函数和出栈函数 。并在main()函数中测试上述函数。
#include #include #define M 100
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef struct{
int data[M];
int top;
} SqStack;
void SqStackInit(SqStack *S){
S->top = -1;
}
int SqStackPush(SqStack *S,int x){
if (S->top == M - 1){
return FALSE;
}
S->top++;
S->data[S->top] = x;
return TRUE;
}
int SqStackPop(SqStack *S, int *x){
if (S->top == - 1){
return FALSE;
} else {
*x = S->data[S->top];
S->top--;
return TRUE;
}
}
int main() {
SqStack S;
int i;
int n;
SqStackInit(&S);
printf("请输入栈元素:\n");
int x;
while(scanf("%d",&x)!=EOF){
SqStackPush(&S,x);
}
printf("输出栈元素:\n");
for (i = 0; i < M; ++i){
if(SqStackPop(&S,&n))
printf("%d ",n);
}
printf("\n");
return 0;
}