#include<iostream>
using namespace std;
#define StackSize 10
typedef char DataType;
struct SeqStack{
DataType data[StackSize];
int top;
};
void InitStack(SeqStack *S){
S->top = -1;
}
int StackEmpty(SeqStack *S){
return S->top == -1;
}
int StackFull(SeqStack *S){
return S->top == StackSize - 1;
}
void Push(SeqStack *S, DataType x){
if(StackFull(S))
cout<<"stack overflow"<<endl;
else{
S->top=S->top+1;
S->data[S->top] = x;
}
}
DataType Pop(SeqStack *S){
if(StackEmpty(S)){
cout<<"stack underflow"<<endl;
exit(0);
}else{
return S->data[S->top--]; //返回栈顶元素后栈顶指针减1
}
}
DataType GetTop(SeqStack *S){
if(StackEmpty(S)){
cout<<"stack empty"<<endl;
exit(0);
}else{
return S->data[S->top]; //返回栈顶元素
}
}
int main(){
struct SeqStack stack;
InitStack(&stack);
Push(&stack,'n');
Push(&stack,'i');
Push(&stack,'m');
Push(&stack,'e');
Push(&stack,'h');
while(!StackEmpty(&stack)){
cout<<GetTop(&stack)<<endl;
Pop(&stack);
}
return 0;
}
顺序栈基本运算的实现 字符型栈
最新推荐文章于 2022-11-17 15:44:30 发布