顺序栈基本运算的实现 字符型栈

来源:互联网 发布:linux cp-a 编辑:程序博客网 时间:2024/06/01 13:24
#include<iostream>using namespace std;#define StackSize 10typedef 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;}

原创粉丝点击