#include<stdio.h>
#define maxsize 10
typedef struct Stack
{
int data[maxsize];
int top;
}*stack;
int main(void)
{
stack p;
p->top=-1;
void push(stack p,int item);
int pop(stack p);
while(1)
{
int temp,pushitem,popitem;
printf("选择操作:\n1:入栈\n2:出栈\n3:退出\n");
scanf("%d",&temp);
if(temp==1)
{
printf("请输入入栈的值:\n");
scanf("%d",&pushitem);
push(p,pushitem);
}
else if(temp==2)
{
if(pop(p)!=-999)
printf("%d\n",pop(p));
else
printf("堆栈空!\n");
}
else if(temp==3)
break;
else
printf("输入错误!\n");
}
return 0;
}
//入栈
void push(stack p,int item)
{
if(p->top==maxsize-1)
{
printf("堆栈满!\n");
return;
}
else
{
p->data[++(p->top)]=item;
return;
}
}
//出栈
int pop(stack p)
{
if(p->top==-1)
{
printf("堆栈空!\n");
return -999;
}
else
{
return (p->data[(p->top)--]);
}
}