实验3:栈和队列的基本操作实现及其应用——顺序队列和链队列
来源:互联网 发布:淘宝隐形降权查询工具 编辑:程序博客网 时间:2024/05/16 06:37
实验3:栈和队列的基本操作实现及其应用
一、实验目的
1、 熟练掌栈和队列的结构特点,掌握栈和队列的顺序存储和链式存储结构和实现。
2、 学会使用栈和队列解决实际问题。
二、实验内容
1、自己确定结点的具体数据类型和问题规模:
分别建立一个顺序栈和链栈,实现栈的压栈和出栈操作。
分别建立一个顺序队列和链队列,实现队列的入队和出队操作。
2、设计算法并写出代码,实现一个十将二进制转换成2进制数。
3、选做题(*)
设计一个模拟饭堂排队打饭管理软件,实现“先来先打饭”的排号叫号管理。
三、实验步骤
1、依据实验内容分别说明实验程序中用到的数据类型的定义;
2、相关操作的算法表达;
3、完整程序;
4、总结、运行结果和分析。
5、总体收获和不足,疑问等。
四、实验要求
1、 按照数据结构实验任务书,提前做好实验预习与准备工作。
2、 加“*”为选做题。做好可加分。
3、 严格按照数据结构实验报告模板和规范,及时完成实验报告。
4、 在个人主页上发文章提交作业。
5、 实验课会抽查3-5人,希望你可以被查到!
顺序队列和链队列
1、顺序队列
头文件:
#include<iostream> using namespace std;
class Cirqueue { private: int data[Size]; int front,rear; public: Cirqueue(){front = rear = Size-1;} ~Cirqueue(){} void Enqueue(int a[],int n); void Dequeue(); };
入队函数:
void Cirqueue::Enqueue(int a[],int n) { for(int i=0;i<n;i++) { rear = (rear+1)%Size; data[rear] = a[i]; }; }
void Cirqueue::Dequeue() { while(front!=rear) { front = (front+1)%Size; cout<<data[front]<<endl; } }
主函数:
void main() { Cirqueue a; int number[8] = {0,1,2,3,4,5,6,7}; a.Enqueue(number,8); a.Dequeue(); }
2、链队列
头文件:
#include<iostream> using namespace std;
Node结构体:
struct Node{int data;Node * next;};
static Node *front,*rear;
入队函数:
void Enqueue(int a[],int n) { Node * s = NULL;s = new Node;front = rear=s; for(int i=0;i<n;i++){ s = new Node; s->data = a[i];s->next = NULL;rear->next = s;rear = s; };}
出队函数:
void Dequeue() {while(front->next != NULL){Node * p = front->next; cout<<p->data<<endl; front->next = p->next;delete p;}}
主函数:
void main() { int number[8] = {0,1,2,3,4,5,6,7}; Enqueue(number,8); Dequeue();}
3、实验结果(以上两个结果相同)
阅读全文
0 0
- 实验3:栈和队列的基本操作实现及其应用——顺序队列和链队列
- 实验4:栈和队列的基本操作实现及其应用——链队列
- 实验3:栈和队列的基本操作实现及其应用——顺序栈和链栈
- 实验三:栈和队列的基本操作实现及其应用——顺序栈
- 实验4:栈和队列的基本操作实现及其应用之《顺序队列》
- 实验4:栈和队列的基本操作实现及其应用之《顺序队列》
- 实验4:栈和队列的基本操作实现及其应用——循环队列
- 实验4:栈和队列的基本操作实现及其应用之《链队列》
- 实验4:栈和队列的基本操作实现及其应用之《链队列》
- 实验4:栈和队列的基本操作实现及其应用之《链队列》
- 实验4:栈和队列的基本操作实现及其应用之《顺序栈》
- 实验4:栈和队列的基本操作实现及其应用之《顺序栈》
- 实验4:栈和队列的基本操作实现及其应用之《顺序栈》
- 实验4:栈和队列的基本操作实现及其应用——链栈
- 实验4:栈和队列的基本操作实现及其应用之《循环队列》
- 实验3:栈和队列的基本操作实现及其应用——十进制转换为二进制
- 实验4:栈和队列的基本操作实现及其应用3
- 实验4:栈和队列的基本操作实现及其应用——进制转换以及实验总结
- 图像处理: 如何将 像素值 控制在 值域[0, 255]
- MicroPython分析
- yii2.0-Ueditor百度编辑器
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)
- Android系统启动流程与刷机包对应关系
- 实验3:栈和队列的基本操作实现及其应用——顺序队列和链队列
- 解决org.apache.ibatis.binding.BindingException: Type interface xxx is not known to the MapperRegistry
- 对IT很有深度认识的一个博客
- 《黑客与画家》简介
- 使用Sublime Text 3作为安装 MarkDown插件的方法
- java IO流相关知识梳理
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(下)
- 后台压力测试-基于jmeter
- 为什么说上海可能成为下一个硅谷,并且为什么需要关注