//顺序栈的基本操作:
#include<stdio.h>
#define maxsize 50
typedef struct ab{
int data[maxsize];
int top;
}sqstack;
void initstack(sqstack &s){//初始化
s.top=-1;
}
bool emptystack(sqstack &s){//判断栈是否为空
if(s.top==-1) return true;
else return false;
}
bool pushstack(sqstack &s,int x){//元素入栈
if(s.top==maxsize-1) return false;//栈满报错
else s.data[++s.top]=x;
return true;
}
bool popstack(sqstack &s,int &x){//栈顶元素出栈
if(s.top<0) return false;
else x=s.data[s.top--];
return true;
}
void printstack(sqstack &s,int x){//输出栈顶元素
printf("当前栈顶元素为:%d\n",x);
}
int main(){
int x=0;
sqstack s;
initstack(s);
pushstack(s,985);
pushstack(s,211);
pushstack(s,400);
while(!emptystack(s)){
popstack(s,x);
printstack(s,x);
}
return 0;
}