#include<stdio.h>
#include<malloc.h>
#define MAXSIZE 20
typedef struct {
int elem[MAXSIZE];
int top;
}SeqStack;
SeqStack *Initstack();//创建并初始化栈
int Judge_empty(SeqStack *L); //判空
int Judge_full(SeqStack *L);//判满
int push(SeqStack *L,int x);//入栈
int pop(SeqStack *L,int x);
main()
{
SeqStack *L;
L=Initstack();
Judge_empty(L);
int x;
printf("输入信息\t");
scanf("%d",&x);
if(push(L,x))
printf("入站成功");
printf("%d \n",pop(L,x));
printf("%d",L->top);
}
SeqStack *Initstack()
{
SeqStack *s;
s=(SeqStack*)malloc(sizeof(SeqStack));
s->top=-1;
return s;
}
int Judge_empty(SeqStack *L)
{
if(L->top==-1)
return 1;
else return 0;
}
int Judge_full(SeqStack *L)
{
if(L->top==MAXSIZE-1)
return 1;
else return 0;
}
int push(SeqStack *L,int x)
{
if(Judge_full(L))
{
printf("栈已满\n");
return 0;
}
L->top++;
L->elem[L->top]=x;
return 1;
}
int pop(SeqStack *L,int x)
{
if(Judge_empty(L))
{
printf("栈空\n");
return 0;
}
L->top--;
return L->elem[L->top+1];
}