实验3:栈和队列的基本操作实现及其应用——十进制转换为二进制
来源:互联网 发布:报纸编辑排版软件 编辑:程序博客网 时间:2024/05/29 17:36
实验3:栈和队列的基本操作实现及其应用
一、实验目的
1、 熟练掌栈和队列的结构特点,掌握栈和队列的顺序存储和链式存储结构和实现。
2、 学会使用栈和队列解决实际问题。
二、实验内容
1、自己确定结点的具体数据类型和问题规模:
分别建立一个顺序栈和链栈,实现栈的压栈和出栈操作。
分别建立一个顺序队列和链队列,实现队列的入队和出队操作。
2、设计算法并写出代码,实现一个十将二进制转换成2进制数。
3、选做题(*)
设计一个模拟饭堂排队打饭管理软件,实现“先来先打饭”的排号叫号管理。
三、实验步骤
1、依据实验内容分别说明实验程序中用到的数据类型的定义;
2、相关操作的算法表达;
3、完整程序;
4、总结、运行结果和分析。
5、总体收获和不足,疑问等。
四、实验要求
1、 按照数据结构实验任务书,提前做好实验预习与准备工作。
2、 加“*”为选做题。做好可加分。
3、 严格按照数据结构实验报告模板和规范,及时完成实验报告。
4、 在个人主页上发文章提交作业。
5、 实验课会抽查3-5人,希望你可以被查到!
十进制转换为二进制
头文件:
#include<iostream> using namespace std;
const int Size = 50; class Conversion { private: int data[Size]; int top; public: Conversion(){top=-1;} ~Conversion(){} void Push(int x); void Pop(); };
进栈函数:
void Conversion::Push(int x) { top=-1; int y; int m=2; if(top==Size-1) throw "上溢"; while(x!=0) { y=x%m; data[++top]=y; x=x/m; }; }
出栈函数:
void Conversion::Pop() { if (top == -1) throw "下溢"; while(top!=-1) { int x=data[top--]; cout<<x; } }
主函数:
void main() { int i=1; int number; Conversion n; do{ cout<<"请输入一个十进制整数!"<<endl; cin>>number; n.Push(number); n.Pop(); cout<<endl; cout<<"若需要继续转换,请输入1;否则请输入0!"<<endl; cin>>i; }while(i==1); }
实验截图:
阅读全文
0 0
- 实验3:栈和队列的基本操作实现及其应用——十进制转换为二进制
- 实验4:栈和队列的基本操作实现及其应用——进制转换以及实验总结
- 实验3:栈和队列的基本操作实现及其应用——顺序队列和链队列
- 实验4:栈和队列的基本操作实现及其应用——循环队列
- 实验4:栈和队列的基本操作实现及其应用——链队列
- 实验4:栈和队列的基本操作实现及其应用之《进制转换》
- 实验4:栈和队列的基本操作实现及其应用之《进制转换》
- 实验三:栈和队列的基本操作实现及其应用——顺序栈
- 实验4:栈和队列的基本操作实现及其应用——链栈
- 实验3:栈和队列的基本操作实现及其应用——顺序栈和链栈
- 实验4:栈和队列的基本操作实现及其应用3
- 实验4:栈和队列的基本操作实现及其应用之《循环队列》
- 实验4:栈和队列的基本操作实现及其应用之《链队列》
- 实验4:栈和队列的基本操作实现及其应用之《顺序队列》
- 实验4:栈和队列的基本操作实现及其应用之《链队列》
- 实验4:栈和队列的基本操作实现及其应用之《顺序队列》
- 实验4:栈和队列的基本操作实现及其应用之《链队列》
- 实验4:栈和队列的基本操作实现及其应用之《顺序栈》
- UVA 12655 Trucks(MST + LCA)
- Android studio简单的JNI实现
- 2013ACM/ICPC亚洲区南京站现场赛
- 关于1*1 conv kernel
- red hat 6.5 配置yum源
- 实验3:栈和队列的基本操作实现及其应用——十进制转换为二进制
- RSA加密原理试讲
- 跟随 Google 工程师学习前端开发,是种怎样的体验?
- 程序员要知道的英语词汇
- HTML编码规范
- 美国硅谷里的中国码农!
- 浅谈程序员的英语学习
- int和Integer
- 北大高材生被华为辞退:用不用你,与能力无关!