队列的存储与操作

队列的存储与操作

ID:47801202

大小:172.00 KB

页数:10页

时间:2020-01-17

队列的存储与操作_第1页
队列的存储与操作_第2页
队列的存储与操作_第3页
队列的存储与操作_第4页
队列的存储与操作_第5页
资源描述:

《队列的存储与操作》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、成绩评阅人重庆邮电大学课程设计实验报告班级:1301416姓名:陈昊学号:2014214156指导老师:夏晨洋课程名称:数据结构实验时间:2015年10月26日-2015年11月2日实验地点:数字图书馆负一楼B132精选范本,供参考!实验四队列的存储与操作一、实验目的1.理解队列是限定只能在队头进行删除操作在队尾进行插入操作的线性表;2.理解队列的存储结构特点,掌握队列的存储分配要点;3.掌握队列的基本操作及实现,深刻领会队列操作的先进先出特征,并能正确分析其时间复杂度,知道队列性能优于普通线性表,以

2、及队列的常用情形。二、主要数据结构描述classCirQueue{public:CirQueue();//构造函数,置空队~CirQueue();//析构函数voidEnQueue(Tx);//将元素x入队TDeQueue();//将队头元素出队TGetQueue();//取队头元素(并不删除)boolEmpty();//判断队列是否为空private:Tdata[QueueSize];//存放队列元素的数组intfront,rear;//队头和队尾指针,分别指向队头元素的前一个位置和队尾元素的位置}

3、;在循环队列这个数据结构中,需要一个构造函数,来创建一个空的队列;需要一个析构函数来删除队列;需要一个EnQueue()函数来插入一个数据;需要一个DeQueue()函数来将队头的元素出队;需要一个DeQueue()函数来输出队头的值;需要一个布尔型的函数来判断队列是否为空。三、算法的基本思想描述1.构造函数:令头指针和尾指针均为零。2.析构函数:空的析构函数。3.入队函数:函数的形参为将存入队列的数据的值。因为判空和判满都需要用到rear==front,所以在判满的操作中,对rear+1取模,在循环

4、的意义下进行判断。如果(rear+1)%QueueSize==front,那么队满。如果没有队满,那么就在循环+1下标的位置存入当前数据。4.出队操作:这里的出队不是删除相应的数据,而是将队头指针+1。首先判断队是否为空,如果不为空就将队头指针在循环意义上+1。5.取队头元素:将队头元素的值取出。6.判空:如果rear==front则为空,否则不为空。因为不涉及循环,所以所有函数的时间复杂度都为O(1)。四、运行的结果截图精选范本,供参考!四、实验体会和收获经过本次试验。我对循环队列有了更深的理解。了

5、解了队列先进先出的特点。知道了如何运用队列解决相应的问题。六、程序清单。CirQueue.hCirQueue.cpp精选范本,供参考!CirQueueMain.cpp精选范本,供参考!四、链队列链队列与顺序队列大致相同,只是用链表来表示而已。链队列的队头指针指向头结点,队尾指针指向终端节点。基本数据结构:精选范本,供参考!classLinkQueue{public:LinkQueue();//构造函数,初始化一个空的链队列~LinkQueue();//析构函数,释放链队列中各结点的存储空间voidEn

6、Queue(Tx);//将元素x入队TDeQueue();//将队头元素出队TGetQueue();//取链队列的队头元素boolEmpty();//判断链队列是否为空private:Node*front,*rear;//队头和队尾指针,分别指向头结点和终端结点};思想与顺序队列一致。需要注意的是对节点的增加和删除。在EnQueue()中,将新申请的节点接在rear后,再让rear=新节点。在DeQueue()中,要暂存队头元素,用来返回,再摘链。运行结果和程序:精选范本,供参考!精选范本,供参

7、考!精选范本,供参考!【本文档内容可以自由复制内容或自由编辑修改内容期待你的好评和关注,我们将会做得更好】精选范本,供参考!精选范本,供参考!

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。