整理队列的定义及基本操作.docx
- 文档编号:793966
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:11
- 大小:77.77KB
整理队列的定义及基本操作.docx
《整理队列的定义及基本操作.docx》由会员分享,可在线阅读,更多相关《整理队列的定义及基本操作.docx(11页珍藏版)》请在冰点文库上搜索。
整理队列的定义及基本操作
(完整版)队列的定义及基本操作
编辑整理:
尊敬的读者朋友们:
这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整版)队列的定义及基本操作)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整版)队列的定义及基本操作的全部内容。
(完整版)队列的定义及基本操作
编辑整理:
张嬗雒老师
尊敬的读者朋友们:
这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布到文库,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是我们任然希望(完整版)队列的定义及基本操作这篇文档能够给您的工作和学习带来便利.同时我们也真诚的希望收到您的建议和反馈到下面的留言区,这将是我们进步的源泉,前进的动力.
本文可编辑可修改,如果觉得对您有帮助请下载收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为〈(完整版)队列的定义及基本操作〉这篇文档的全部内容。
队列的定义及基本操作
一、实验目的、意义
(1)掌握对列的定义和基本操作,熟练掌握循环队列的操作及应用,掌握循环队列的入队和出队等基本操作。
(2)加深对队列结构的理解,逐步培养解决实际问题的编程能力
二、实验内容及要求
说明1:
学生在上机实验时,需要自己设计出所涉及到的函数,同时设计多组输入数据并编写主程序分别调用这些函数,调试程序并对相应的输出作出分析;修改输入数据,预期输出并验证输出的结果,加深对有关算法的理解.
具体要求:
定义循环队列,完成队列的基本操作:
入队和出队等。
(参见教材59页)
三、实验所涉及的知识点
C语言编程、释放空间、参数引用、指针、循环队列、顺序循环队列的基本操作、入队和出队。
四、实验结果及分析
(所输入的数据及相应的运行结果,运行结果要有提示信息,运行结果采用截图方式给出.)
五、总结与体会
(调试程序的心得与体会,若实验课上未完成调试,要认真找出错误并分析原因等。
)
本次上机实验,出现了许多问题,由于对知识点的不熟悉,编的程序错漏百出,导致此次试验没有在上机课的时间内按时完成,之后通过,查看老师课件,查找书本,查阅网页,花费大量时间才完成实验。
这次实验让我发现,自己不仅对数据结构知识不熟练,对以前学过的知识也遗忘的很快,在接下来的实验中,不仅要学好书本知识,还要好好复习以前学的内容。
六、程序清单(包含注释)
#include〈stdio.h>
#include h〉 #definetrue1 #definefalse0 #defineSize50 //队列的数据结构 typedefstruct { intelement[Size];//队列的元素空间 intfront;//头指针 intrear;//尾指针 intcount;//计数,记录队中元素总数 }SeqQueue; //函数声明表 voidPrint(SeqQueue*Q); voidChoose(intchoice,SeqQueue*Q); voidInitQueue(SeqQueue*Q); intEnterQueue(SeqQueue*Q,intx); intDeleteQueue(SeqQueue*Q,int*x); voidPrintQueue(SeqQueue*Q); intQueueEmpty(SeqQueue*Q); intQueueFront(SeqQueue*Q); intQueueFull(SeqQueue*Q); intmain() { SeqQueueQ; InitQueue(&Q); Print(&Q); while(true) { printf(”Pressentertocontinue.。 。 。 ..。 。 。 ”); getchar(); getchar(); system("cls”); Print(&Q); } return0; } //重复刷新并打印功能选项列表来模拟面向对象编程的等待命令操作 voidPrint(SeqQueue*Q) { intchoice; printf(”—---——-----—————-—-——\n"); printf("1.入队.\n"); printf(”2。 出队。 \n”); printf("3。 打印输出当前队列。 \n”); printf(”4。 打印输出当前队列头元素。 \n"); printf("5。 按其它任意键退出.\n"); printf("———--——-——————————--—\n"); printf(”请选择你要的操作: ”); scanf("%d",&choice); Choose(choice,Q); } //选择功能函数 voidChoose(intchoice,SeqQueue*Q) { inti,n,a,x=0; switch(choice) { case1: printf(”请输入要入队的元素个数: "); scanf(”%d”,&n); printf("请依次输入要入队的%: \n”,n); for(i=1;i<=n;i++) { scanf("%d",&x); EnterQueue(Q,x); } printf(”入队成功! \n"); break; case2: printf("请输入要出队的元素个数: "); scanf("%d”,&n); printf("出队的%d个元素依次为: \n”,n); while(n-—) { DeleteQueue(Q,&x); printf("%d”,x); } printf("\n"); printf(”出队成功! \n”); break; case3: PrintQueue(Q); break; case4: a=QueueFront(Q); printf(”%d\n\n",a); break; default: exit(0); } } //初始化队列函数 voidInitQueue(SeqQueue*Q) { //将*Q初始化为一个空的循环队列 Q—〉front=Q—>rear=0; } //入队函数 intEnterQueue(SeqQueue*Q,intx) { //将元素x入队 if((Q—>rear+1)%Size==Q-〉front)//队列已经满了 { returnfalse; } Q->element[Q-〉rear]=x; Q->rear=(Q—>rear+1)%Size;//重置尾指针 returntrue; } //出队函数 intDeleteQueue(SeqQueue*Q,int*x) { //删除队列的队头元素,用x返回其值 if(Q—〉front==Q-〉rear)//队列为空 returnfalse; *x=Q->element[Q->front]; Q—〉front=(Q—〉front+1)%Size;//重新设置队头指针 returntrue; } //打印输出队列 voidPrintQueue(SeqQueue*Q) { inti; for(i=Q-〉front;i〈Q—〉rear;i++) { printf("%d",Q—>element[i]); } printf("\n”); } //判断空队列 intQueueEmpty(SeqQueue*Q) { returnQ-〉count==0;//队列无元素为空 } //判断满队列 intQueueFull(SeqQueue*Q) { returnQ-〉count==Size;//队中元素个数等于Size时队满 } //取队头元素 intQueueFront(SeqQueue*Q) { if(QueueEmpty(Q)) printf("Queueifempty。 "); returnQ->element[Q—〉front]; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 整理 队列 定义 基本 操作