顺序栈
来源:互联网 发布:58同城小程序源码 编辑:程序博客网 时间:2024/06/10 02:21
#include <iostream>using namespace std;const int stacksize=100;typedef struct {int *base;int *top;int stacksize;}SqStack;void List ();void CreatStack (SqStack &s);void InsertStack (SqStack &s);void ClearStack (SqStack &s);void DestroyStack (SqStack &s);void EmptyStack (SqStack s);void LengthStack (SqStack s) ;void GettopStack (SqStack s);void pushStack (SqStack &s);void popStack (SqStack &s);void typeStack (SqStack s);int main(){int number;List();SqStack s;s.base=NULL;while(1){cout<<"请输入可执行的操作:"<<endl;cin>>number;switch(number){case 1:CreatStack (s);break;case 2:InsertStack (s);break;case 3:ClearStack (s);break;case 4:DestroyStack (s);break;case 5:EmptyStack (s);break;case 6:LengthStack (s);break;case 7:GettopStack (s);break;case 8:pushStack (s);break;case 9:popStack (s);break;case 10:typeStack (s);break;case 11:break;default:cout<<"请输入有效的操作!!!"<<endl<<endl;}if(number==11)break;}return 0;}void List (){ cout<<"******************************"<<endl; cout<<"** 1.创建一个空栈 **"<<endl; cout<<"** 2.输入栈元素 **"<<endl; cout<<"** 3.清空栈 **"<<endl; cout<<"** 4.销毁栈 **"<<endl; cout<<"** 5.判断栈是否为空 **"<<endl; cout<<"** 6.返回栈的长度 **"<<endl; cout<<"** 7.求栈顶元素 **"<<endl; cout<<"** 8.插入使其成为栈顶元素 **"<<endl; cout<<"** 9.删除栈顶元素,返回其值 **"<<endl; cout<<"** 10.输出栈的元素 **"<<endl; cout<<"** 11.退出 **"<<endl; cout<<"** **"<<endl; cout<<"******************************"<<endl;}void CreatStack (SqStack &s){s.base=new int [stacksize];if(!s.base)cout<<"申请失败,空间不足!!!\n";else{s.top=s.base; s.stacksize=stacksize;cout<<"创建成功一个空栈!!!\n";}}void InsertStack (SqStack &s){if(s.base){cout<<"请输入栈元素的个数:";int num;cin>>num;cout<<"请输入元素的值:";for(int i=0;i<num;i++){cin>>s.base[i];s.top++;}cout<<"初始化成功!!!\n";}elsecout<<"请先进行创建一个栈!!!\n";}void ClearStack (SqStack &s){if(s.base){s.top=s.base;cout<<"已清空栈!!!\n";}elsecout<<"请先进行创建一个栈!!!\n";}void DestroyStack (SqStack &s){if(s.base){delete s.base;s.base=NULL;}elsecout<<"请先进行创建一个栈!!!\n";}void EmptyStack (SqStack s){if(s.base){if(s.top==s.base)cout<<"此栈为空!!!\n";elsecout<<"此栈非空!!!\n";}elsecout<<"请先进行创建一个栈!!!\n";}void LengthStack (SqStack s) {if(s.base){SqStack q;q=s;int len=0;while(q.base<s.top){len++;q.base++;}cout<<"栈长为:"<<len<<endl;}elsecout<<"请先进行创建一个栈!!!\n";}void GettopStack (SqStack s){if(s.base){if(s.top==s.base) cout<<"此栈为空,不存在栈顶元素!!!\n";elsecout<<"栈顶元素为:"<<*(s.top-1)<<endl; }elsecout<<"请先进行创建一个栈!!!\n";}void typeStack (SqStack s){if(s.base){SqStack q;q=s;cout<<"栈的元素:";while(q.base<s.top){cout<<*(q.base)<<" "; q.base++; } cout<<endl;}elsecout<<"请先进行创建一个栈!!!\n";}void pushStack (SqStack &s){if(s.base){if(s.top-s.base>=s.stacksize)cout<<"此栈已满!!!\n";else{cout<<"请输入进栈的元素值:";cin>>*(s.top);s.top++;}}elsecout<<"请先进行创建一个栈!!!\n";}void popStack (SqStack &s){if(s.base){if(s.base==s.top)cout<<"此栈为空,操作失败!!!\n";else{int num;num=*--s.top;cout<<"出栈成功,出栈元素为:"<<num<<endl; }}elsecout<<"请先进行创建一个栈!!!\n";}
0 0
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- htaccess伪静态 最后面加斜杠怎么写
- jQuery.data() 函数详解
- Hadoop-HDFS
- HDU 4267 A Simple Problem with Integers(线段树)
- [LeetCode]--39. Combination Sum
- 顺序栈
- Ogre中Frustum::updateFrustumPlanesImpl(void)函数解析
- JavaScript比例值或者小数转换成保留两位(或多位)的百分数
- 10.23-10.30工作周报
- js将json数组传递到后台及接收
- Git精简教程,快速上手
- greenDAO的使用
- 近期要完成的事情
- React Native 和ionic2 你选择哪一个?