#include<iostream>
using namespace std;
#define MaxSize 50
typedef struct {
int data[MaxSize];
int top;
} SqStack;
void InitStack(SqStack &S) {
S.top=-1;
}
bool StackEmpty(SqStack S) {
if(S.top==-1)
return true;
else return false;
}
bool Push(SqStack &S,int x) {
if(S.top==MaxSize-1)
return false;
S.data[++S.top]=x;
return true;
}
bool Pop(SqStack &S,int &x) {
if(S.top==-1)
return false;
x=S.data[S.top--];
return true;
}
bool GetTop(SqStack S,int &x) {
if(S.top==-1)
return false;
x=S.data[S.top];
return true;
}
void PrintStack(SqStack S) {
for(int i=S.top; i>=0; i--) {
cout<<S.data[i]<<" ";
}
cout<<endl;
}
int main() {
SqStack s;
int x;
InitStack(s);
cout<<"是否为空"<<StackEmpty(s)<<endl;
Push(s,1);
Push(s,2);
Push(s,3);
Push(s,4);
Push(s,5);
GetTop(s,x);
cout<<"当前栈顶的值为"<<x<<endl;
PrintStack(s);
Pop(s,x);
cout<<"出栈的值为"<<x<<endl;
PrintStack(s);
Pop(s,x);
cout<<"出栈的值为"<<x<<endl;
PrintStack(s);
return 0;
}
栈的顺序存储结构
最新推荐文章于 2024-09-09 15:48:17 发布