数据结构实验七队列实验

数据结构实验七队列实验

ID:32562672

大小:151.30 KB

页数:5页

时间:2019-02-12

数据结构实验七队列实验_第1页
数据结构实验七队列实验_第2页
数据结构实验七队列实验_第3页
数据结构实验七队列实验_第4页
数据结构实验七队列实验_第5页
资源描述:

《数据结构实验七队列实验》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、一,实验题目实验七:假设以数组se[m]存放循环队列的元素,同时设变量rear和num分别作为队尾指针和队中元素个数记录。试讨论判别此循环队列的队满条件,写出相应的入队和出队算法,并通过运行验证之。二,问题分析本程序要求实现用数组se[m]存放循环队列的元素,并设变量rear和num分别作为队尾指针和队中元素个数记录。实现出队和入队操作。完成这些功能需要解决的关键问题是建立队列,插入一个对列元素和队列元素的出队。1,数据的输入形式和输入值的范围:队列元素为整数。插入的队列元素也为整数。2,结果的输出形式:根据选择菜单,结果输出的可以使队列元素,可以使出队或入队后的队列。3

2、,测试数据:(1)一开始输入的队列元素为:456,34,543,123,56,87(2)选择菜单2后,入队的队列元素为45(3)选择菜单1后,队列的首元素出队三,概要设计(1)为了实现上述程序的功能,需要:A,构造一个空队列set()B,实现队列元素的入队功能C,实现队列元素的出队功能insert()D,队列的输出main()E,在屏幕上显示菜单操作(2)本程序包含5个函数:del()a,主函数main()b,建立空队列函数set()display()c,队列元素入队函数insert()d,队列元素出队函数del()e,队列元素输出函数display()各函数间关系如右图

3、所示:四,详细设计(1)结点类型定义:typedefstructnode{intse[maxlen];intrear,num;}seqstack;(2)队列置空函数伪代码:seqstack*set(){seqstack*s;s=(seqstack*)malloc(sizeof(seqstack));s->rear=0;s->num=0;returns;}(3)队列入队函数伪代码:seqstack*insert(seqstack*p,intx){if(p->num>=maxlen)printf("队列已满!");else{if(p->rearse

4、[rear]=x;p->rear++;p->num++;}if(p->rear>=maxlen){p->se[0]=x;p->rear=1;p->num++;}}returnp;}(4)队列入队函数伪代码:seqstack*del(seqstack*p){p->num--;returnp;}(5)输出队列元素伪代码:voiddisplay(seqstack*p){inti;if(p->num<=p->rear){for(i=0;inum;i++)printf("%d",p->se[p->rear-p->num+i]);}elsefor(i=0;inum;i

5、++)printf("%d",p->se[(maxlen+p->rear-p->num+i)%maxlen]);}五,源代码#include"stdio.h"#include"malloc.h"#definemaxlen100typedefstructnode{//队列的结构定义intse[maxlen];intrear,num;}seqstack;seqstack*set()//建立空队列函数{seqstack*s;s=(seqstack*)malloc(sizeof(seqstack));//申请空间s->rear=0;s->num=0;returns;}seqsta

6、ck*insert(seqstack*p,intx)//向队列中插入元素函数{if(p->num>=maxlen)//如果元素的个数大于队列的最大长度printf("队列已满!");//则输出队列已满else{//当队列元素未满时if(p->rearse[p->rear]=x;//则直接将元素插在队尾即可p->rear++;//使p指向刚插入的元素p->num++;//元素的个数加1}if(p->rear>=maxlen)//如果队尾元素的下标等于队列的最大值{p->se[0]=x;//则将元素插在队列的首位置p-

7、>rear=1;//将尾指针指向下标为1的位置p->num++;//元素个数加1}}returnp;//返回该队列}seqstack*del(seqstack*p)//队列的出队函数{p->num--;//出队时,队列中的元素个数减一returnp;//返回该列队}voiddisplay(seqstack*p)//输出队列中元素的函数{inti;if(p->num<=p->rear)//如果队列中的元素个数小于队尾元素的下标{for(i=0;inum;i++)printf("%d",p->se[p->rear-p->n

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

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

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