实验三队列实验报告

实验三队列实验报告

ID:48278106

大小:162.17 KB

页数:19页

时间:2019-11-28

实验三队列实验报告_第1页
实验三队列实验报告_第2页
实验三队列实验报告_第3页
实验三队列实验报告_第4页
实验三队列实验报告_第5页
资源描述:

《实验三队列实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、计算机科学与技术系实验报告专业名称计算机科学与技术课程名称数据结构与算法项目名称实验三队列实验班级学号1姓名同组人员无实验日期实验三队列实验实验题目:建立含有若干个元素的循环队列和链队列,并分别实现循环队列和链队列的入队和出对操作。(1)先实现循环队列的入队和出队操作1.问题分析本程序要求实现建立含有若干个元素的循环队列,并实现循环队列的入队和出队操作。完成该实验需要以下4个子任务:定义一个循环队列的存储结构,定义队列的基本算法。定义一个display()函数实现队列元素的输出看入队是否成功通过队列的基本算法实现队列的出队操作在主函数中完成

2、操作测试数据设计如下:1234562.概要设计为了实现上述程序功能,需要:声明一个循环队列定义出队列的基本算法,通过键盘输入5个整数,入队,出队在主函数中先往队列里输入5个元素,然后入队,输出,看入队是否成功,然后出队,再调用display()函数看是否出队。1)本程序包含7个函数:1主函数main()2.置空队:InitQueue()3.判对空:QueueEmpty()4.判队满:QueueFull()5.入队:Add()6.出队:Delete()7.display()各函数关系如下:InitQueue()QueueEmpty()Main

3、()QueueFull()Add()MainDelete()display()3、详细设计实现概要设计中定义的所有的数据类型,对每个操作给出了算法和代码,主程序和模块都需要代码。(1)循环队列#definemaxlen10typedefstruct{intdata[maxlen];intfront;intrear;}SeqQueue;(2)队列基本算法SeqQueue*InitQueue(SeqQueue*q)//建立一个空循环队列{q=(SeqQueue*)malloc(sizeof(SeqQueue));q->front=0;q->re

4、ar=0;returnq;}intQueueFull(SeqQueue*q){//判断队列是否为满if(q->front==(q->rear+1)%maxlen)return1;elsereturn0;}intQueueEmpty(SeqQueue*q){//判断队列是否为空if(q->rear==q->front)return1;elsereturn0;}voidAdd(SeqQueue*q,intx)//入队{if(!QueueFull(q)){q->rear=(q->rear+1)%maxlen;q->data[q->rear]=x;

5、}elseprintf("queuefull");}voidDelete(SeqQueue*q){//出队if(!QueueEmpty(q))q->front=(q->front+1)%maxlen;elseprintf("queueEmpty");}(3)用display()函数输出循环队列元素voiddisplay(SeqQueue*q)//输出循环队列q的元素{inti;if(q->front!=q->rear)//循环队列非空,输出队列元素{printf("输出循环队列元素:");i=q->front;do{i=(i+1)%maxl

6、en;printf("%d",q->data[i]);}while(i!=q->rear);}elseprintf("队列为空!");}(4)在主函数中先往队列里输入5个元素,输出,看入队是否成功,然后出队,再调用display()函数看是否出队。intmain(){SeqQueue*q;inti,y;q=InitQueue(q);//建立空循环队列printf("请输入5个元素");for(i=0;i<5;i++)//入队5个元素{scanf("%d",&y);Add(q,y);}display(q);//输出循环队列元素for(i=0;

7、i<5;i++)//把5个元素出队{Delete(q);}printf("请输入1个元素");scanf("%d",&y);//再入队一个元素Add(q,y);display(q);//再输出循环队列元素return0;}4、调试分析编译无错误5、用户使用说明程序名为class1.exe,在DEBUG文件夹里面。运行环境Visualc++6.0。6、测试结果7、附录#include#include#definemaxlen10typedefstruct{intdata[maxlen];intfron

8、t;intrear;}SeqQueue;SeqQueue*InitQueue(SeqQueue*q)//建立一个空循环队列{q=(SeqQueue*)malloc(sizeof(

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

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

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