会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
spring学习笔记
顺序栈
/*实验2 2. 完成对顺序栈结构的定义,以及对顺序栈的各种基本运算的实现 (每种基本运算用一个函数来实现)。 基本运算包括: 初始化Init_sqstack运算、 判栈空Empty_sqstack运算、 入栈Push_sqstack运算、 出栈Pop_sqstack运算、 取栈顶元素Gettop_sqstack运算。 并且在main函数中分别调用以上各种基本运算的函数来使用, 以证明其功能已实现。此题的源程序保存为 3_a1.cpp。 */ #include<iostream> using namespace std; typedef char datatype; //栈元素类型,假设为整型 const int maxsize=100; //栈容量 typedef struct { datatype data[maxsize]; int top; } sqstack; //顺序栈类型 sqstack* Init_sqstack( ) { sqstack *sq = new sqstack; sq->top=-1; return sq; } int Empty_sqstack(sqstack *sq) { if(sq->top==-1) return 1; else return 0; } int Push_sqstack(sqstack *sq,datatype x) { if(sq->top==maxsize-1)//上溢 { cout<<"栈满,不能入栈!\n"; return 0; } else { ++sq->top; sq->data[sq->top]=x; return 1; } } int Pop_sqstack(sqstack *sq,datatype &x) { if(sq->top==-1)//下溢 { cout<<"栈空,不能出栈!\n"; return 0; } else { x = sq->data[sq->top]; sq->top--; return 1; } } int Gettop_sqstack(sqstack *sq,datatype &x) { if(sq->top==-1) { cout<<"栈空,无栈顶可取!\n"; return 0; } else { x = sq->data[sq->top]; return 1; } } void Display(sqstack *sq) { int i; if(Empty_sqstack(sq)) { cout<<"此时栈为空。"<<endl; } else { cout<<"栈底到栈顶的元素依次是:"; for(i=0 ; i<=sq->top ;i++) cout<<sq->data[i]<<" "; cout<<endl; } } int main() { sqstack *S; S=Init_sqstack(); char choice,x; int flag = 1; while(flag) { cout<<"------------顺序栈------------------------------"<<endl; cout<<" 1. 入栈 "<<endl; cout<<" 2. 出栈 "<<endl; cout<<" 3. 取栈顶元素 "<<endl; cout<<" 4. 判断栈是否为空 "<<endl; cout<<" 5. 浏览栈底到栈顶所有元素(测试用) "<<endl; cout<<" 6. 退出 "<<endl; cout<<"------------------------------------------------"<<endl; cout<<"请选择:"; cin>>choice; switch(choice) { case '1': cout<<"请输入一个需要入栈的字符"<<endl; cin>>x; if(Push_sqstack(S,x)) cout<<"入栈成功"<<endl; else cout<<"入栈失败!"<<endl; break; case '2': if(Pop_sqstack(S,x)) cout<<"出栈成功,弹出栈的元素是:"<<x<<endl; else cout<<"出栈失败!"<<endl; break; case '3': if(Gettop_sqstack(S,x)) cout<<"取栈顶元素成功,弹出栈的元素是:"<<x<<endl; else cout<<"取栈顶元素失败!"<<endl; break; case '4': if(Empty_sqstack(S)) cout<<"此时栈为空。"<<x<<endl; else cout<<"此时栈不为空。"<<endl; break; case '5': Display(S); break; case '6': flag=0; break; default : cout<<"输入错误,请重新选择。"<<endl; } } return 0; }
posted on
2011-10-22 10:04
spring学习笔记
阅读(
211
) 评论(
0
)
编辑
收藏
举报
刷新页面
返回顶部
导航
博客园
首页
联系
订阅
管理
公告