实验三 顺序栈和链栈
来源:互联网 发布:JS域名代码授权源码 编辑:程序博客网 时间:2024/05/16 11:21
一、实验目的
1、 熟练掌栈和队列的结构特点,掌握栈和队列的顺序存储和链式存储结构和实现。
2、 学会使用栈和队列解决实际问题。
二、实验内容
1、自己确定结点的具体数据类型和问题规模:
分别建立一个顺序栈和链栈,实现栈的压栈和出栈操作。
分别建立一个顺序队列和链队列,实现队列的入队和出队操作。
2、设计算法并写出代码,实现一个十将二进制转换成2进制数。
3、选做题(*)
设计一个模拟饭堂排队打饭管理软件,实现“先来先打饭”的排号叫号管理。
三、实验步骤
1、依据实验内容分别说明实验程序中用到的数据类型的定义;
2、相关操作的算法表达;
3、完整程序;
4、总结、运行结果和分析。
5、总体收获和不足,疑问等。
四、实验要求
1、 按照数据结构实验任务书,提前做好实验预习与准备工作。
2、 加“*”为选做题。做好可加分。
3、 严格按照数据结构实验报告模板和规范,及时完成实验报告。
4、 在个人主页上发文章提交作业。
5、 实验课会抽查3-5人,希望你可以被查到!
五、实验
1.顺序栈
#include<iostream> using namespace std; const int Max=20; class SeqStack { public: SeqStack(){top=-1;} ~SeqStack(){} void Push(int x); void Pop(); int GetTop(){if(top!=-1)return data[top];} int Empty(){if(top=-1)return 1; else return 0;} private: int data[Max]; int top; }; void SeqStack::Push(int x) { if(top==Max-1)throw"上溢"; data[++top]=x; } void SeqStack::Pop() { int x; if(top==-1)throw"下溢"; x=data[top--]; cout<<x<<endl; } int main() { SeqStack a; int n,x; cout<<"请输入您想输入数的个数为:"; cin>>n; if(n>Max) throw"上溢"; cout<<"请输入一组数:"; for(int i=0;i<n;i++) { cin>>x; a.Push(x); } cout<<"出栈结果如下:"; a.Pop(); return 0; }
结果:
2.链栈
#include<iostream>using namespace std;struct Node{int data;Node *next;};class LinkStack{public:LinkStack(){top=NULL;}~LinkStack(){} void Push(int x);int Pop();int GetTop(){if(top!=NULL)return top->data;}int Empty(){if(top=NULL)return 1;return 0;}private: Node *top;};void LinkStack::Push(int x){Node *s;s=new Node;s->data=x;s->next=top;top=s;}int LinkStack::Pop(){Node *p;int x;if(top==NULL)throw"down";x=top->data;p=top;top=top->next;delete p;return x;}int main(){LinkStack a;int b,n,x;cout<<"请输入您想输入数的个数为:";cin>>n;cout<<"请输入一组数:";for(int i=0;i<n;i++){cin>>x;a.Push(x);} cout<<"请输入您想弹出数的个数:"<<endl;cin>>b;cout<<"结果如下:";for(int p=n;p>n-b;p--)cout<<a.Pop()<<endl; return 0;}
结果:
六、心得体会
对于栈的结构有更深刻的感受,同时熟悉了对栈的操作。但是仍有很多问题出现,例如书写规范问题,让我花了较多时间去查找问题所在。
阅读全文
0 0
- 实验三 顺序栈和链栈
- 实验三、顺序栈和链栈
- 实验三:顺序栈和链队列验证实验
- 实验三 顺序栈
- 实验三、顺序栈
- 实验三顺序栈
- 实验三之顺序栈
- 实验三、链队列和顺序队列
- 实验四:顺序栈和链栈
- 实验三——顺序栈
- 实验三:顺序栈的实现
- 实验三:顺序栈的实现
- 数据结构实验三——顺序栈
- 实验三 顺序栈(c++)
- 实验三(1) 顺序栈的验证实验
- 实验三: 栈和队列实验
- 《数据结构》实验三: 栈和队列实验
- 《数据结构》实验三: 栈和队列实验
- python3 数据类型之 列表、字典、元组
- weex学习之路(二)---组件封装(1)
- 欢迎使用CSDN-markdown编辑器
- UltraViewPager 无法显示多屏问题
- TLPI-Chapter 9 进程凭证
- 实验三 顺序栈和链栈
- 解决Access denied for user 'root'@'localhost' (using password: YES” 问题
- resultMap与resultType、parameterMap与 parameterType的区别
- ubuntu如何使用root权限
- Struts2深入详解--- 认识Struts2
- Switchhosts软件的使用
- 解决从mysql表中多列导出数据到csv合并成一列的问题
- TrickGCD HDU
- 【论文阅读】Illuminating Pedestrians via Simultaneous Detection & Segmentation