408考研:顺序栈的代码学习

顺序栈:

可执行代码:

cpp 复制代码
//顺序栈的基本操作:
#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;
} 

执行结果: