#include <stdio.h>
#define MaxSize 100
typedef int ElemType;//定义数据类型
//定义顺序栈
typedef struct
{
ElemType data[MaxSize];//数据域
int top;//如果定义top=-1,编译出错
}SeqStack;
//栈初始化
int InitStack(SeqStack &s)
{
s.top=-1;//初始化栈顶,指向空
return 1;
}
//入栈
int Push(SeqStack &s,ElemType x)
{
if (s.top == MaxSize -1 )
{
printf("栈已满,不能入栈.\n");
return 0;
}
else
{
s.top++;//栈顶指针上移
s.data[s.top] = x;//数据元素入栈
}
return 1;
}
//出栈
int Pop(SeqStack &s,ElemType &x)
{
if (s.top == -1)
{
printf("栈为空,不能出栈.\n");
return 0;
}
else
{
x=s.data[s.top];//取出栈顶元素值
s.top--;//栈顶指针下移
}
return 1;
}
int main(void)
{
int i,x;
SeqStack st;
//栈初始化
InitStack(st);
//入栈
printf("入栈...\n");
for(i=0;i<8;i++)
if(Push(st,i+11)!=1)
return 1;
//出栈
printf("出栈...\n");
if(Pop(st,x)!=1)
return 1;
printf("弹出值:%d\n",x);
return 0;
}
温馨提示:答案为网友推荐,仅供参考