实验报告——栈和队列的应用.doc_第1页
实验报告——栈和队列的应用.doc_第2页
实验报告——栈和队列的应用.doc_第3页
实验报告——栈和队列的应用.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验5 栈和队列的应用目的和要求:(1)熟练栈和队列的基本操作;(2)能够利用栈与队列进行简单的应用。一、题目题目1.利用顺序栈和队列,实现一个栈和一个队列,并利用其判断一个字符串是否是回文。所谓回文,是指从前向后顺读和从后向前倒读都一样的字符串。例如,a+b&b+a等等。题目2. 假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。现要求写一算法模拟上述舞伴配对问题,并实现。题目3. 打印机提供的网络共享打印功能采用了缓冲池技术,队列就是实现这个缓冲技术的数据结构支持。每台打印机具有一个队列(缓冲池),用户提交打印请求被写入到队列尾,当打印机空闲时,系统读取队列中第一个请求,打印并删除之。请利用队列的先进先出特性,完成打印机网络共享的先来先服务功能。题目4. 假设以数组Qm存放循环队列中的元素, 同时设置一个标志tag,以tag = 0和tag = 1来区别在队头指针(front)和队尾指针(rear)相等时,队列状态为“空”还是“满”。试编写与此结构相应的插入(enqueue)和删除(dlqueue)算法。题目5. 利用循环链队列求解约瑟夫环问题。请大家从本组未讨论过的五道题中选择一道,参照清华邓俊辉老师MOOC视频及课本相关知识,编写相应程序。选择题目3: 打印机提供的网络共享打印功能采用了缓冲池技术,队列就是实现这个缓冲技术的数据结构支持。二、程序清单/Ch3.cpp #include#include#includech3.htemplate void LinkedQueue:makeEmpty()/makeEmpty/函数的实现LinkNode*p;while(front!=NULL)/逐个删除队列中的结点p=front;front=front-link;delete p;template bool LinkedQueue:put_in(T&x)/提交命令函数if(front=NULL)/判断是否为空front=rear=new LinkNode;/如果为空,新结点为对头也为对尾front-data=rear-data=x;if(front=NULL) /分配结点失败return false;else rear-link=new LinkNode;/如不为空,在链尾加新的结点rear-link-data=x;if(rear-link=NULL)return false;rear=rear-link;return true;template bool LinkedQueue:carry_out()/执行命令函数if(IsEmpty()=true)/判断是否为空 return false; coutdata ;/输出链尾的数据,代表执行打印命令LinkNode*p=front;front=front-link;/删除以执行的命令,即对头修改delete p; /释放原结点return true;void main() /主函数LinkedQueue q;/定义类对象char flag=Y; /标志是否输入了命令const int max=30;/一次获取输入命令的最大个数while(flag=Y) /循环int i=0;char strmax; /定义存储屏幕输入的命令的数组gets(str); /获取屏幕输入的命令 while(stri!=0) q.put_in(stri);/调用提交命令函数,将每个命令存入队列中 i+; for(int j=0;j=i;j+) if(q.IsEmpty()=true) /判断是否为空,为空则说明没有可执行的命令 cout已经没有可执行的命令!是否继续输入命令(Y|N)?flag;continue; /为空跳出for循环为下次输入命令做好准备 q.carry_out();/调用执行命令的函数,将命令打印并删除三、程序调试过程中所出现的错误无。四、运行结果:五、心得体会打印机采用的缓冲池技术,本质上就是利用了队列的先进先出的特点,体现了先来后到原则。虽然意思很简单,但是实际编程过程中,出现bug的概率还是蛮

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论