#include<bits/stdc++.h>
using namespace std;
//栈的顺序存储实现
#define ElemType int
#define MaxSize 5
struct SqStack{
ElemType data[MaxSize]; //静态数组存放栈中元素
int top; //栈顶指针
};
//初始化栈
void InitStack(SqStack &S){
S.top=-1; //初始时栈为空栈顶指针为-1
}
//判断栈是否为空
void IsEmpty(SqStack &S){
if(S.top==-1)
cout<<"栈为空"<<endl;
else
cout<<"栈不空"<<endl;
}
//入栈
void StackPush(SqStack &S,int value){
if(S.top==MaxSize-1){
cout<<"栈已满"<<endl;
return;
}
S.data[++S.top]=value;
}
//出栈
void StackPop(SqStack &S){
if(S.top==-1){
cout<<"栈为空"<<endl;
return;
}
S.top--;
}
//取栈顶元素
void GetTop(SqStack &S){
if(S.top==-1){
cout<<"栈为空"<<endl;
return;
}
int value=S.data[S.top];
cout<<value<<endl;
}
int main(){
SqStack S; //定义一个顺序栈
InitStack(S); //初始化栈
IsEmpty(S); //判断栈是否为空
StackPush(S,1); //入栈
StackPush(S,2);
StackPush(S,3);
StackPush(S,4);
StackPush(S,5);
StackPush(S,6);
IsEmpty(S); //判断栈是否为空
GetTop(S); //取栈顶元素
StackPop(S); //出栈
GetTop(S); //取栈顶元素
StackPop(S); //出栈
GetTop(S); //取栈顶元素
StackPop(S); //出栈
GetTop(S); //取栈顶元素
StackPop(S); //出栈
GetTop(S); //取栈顶元素
StackPop(S); //出栈
GetTop(S); //取栈顶元素
StackPop(S); //出栈
IsEmpty(S); //判断栈是否为空
return 0;
}
栈的顺序存储实现
最新推荐文章于 2023-12-02 18:34:23 发布