整理队列的定义及基本操作.docx

上传人:b****1 文档编号:793966 上传时间:2023-04-30 格式:DOCX 页数:11 大小:77.77KB
下载 相关 举报
整理队列的定义及基本操作.docx_第1页
第1页 / 共11页
整理队列的定义及基本操作.docx_第2页
第2页 / 共11页
整理队列的定义及基本操作.docx_第3页
第3页 / 共11页
整理队列的定义及基本操作.docx_第4页
第4页 / 共11页
整理队列的定义及基本操作.docx_第5页
第5页 / 共11页
整理队列的定义及基本操作.docx_第6页
第6页 / 共11页
整理队列的定义及基本操作.docx_第7页
第7页 / 共11页
整理队列的定义及基本操作.docx_第8页
第8页 / 共11页
整理队列的定义及基本操作.docx_第9页
第9页 / 共11页
整理队列的定义及基本操作.docx_第10页
第10页 / 共11页
整理队列的定义及基本操作.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

整理队列的定义及基本操作.docx

《整理队列的定义及基本操作.docx》由会员分享,可在线阅读,更多相关《整理队列的定义及基本操作.docx(11页珍藏版)》请在冰点文库上搜索。

整理队列的定义及基本操作.docx

整理队列的定义及基本操作

(完整版)队列的定义及基本操作

编辑整理:

 

尊敬的读者朋友们:

这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整版)队列的定义及基本操作)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整版)队列的定义及基本操作的全部内容。

(完整版)队列的定义及基本操作

编辑整理:

张嬗雒老师

 

尊敬的读者朋友们:

这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布到文库,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是我们任然希望(完整版)队列的定义及基本操作这篇文档能够给您的工作和学习带来便利.同时我们也真诚的希望收到您的建议和反馈到下面的留言区,这将是我们进步的源泉,前进的动力.

本文可编辑可修改,如果觉得对您有帮助请下载收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为〈(完整版)队列的定义及基本操作〉这篇文档的全部内容。

队列的定义及基本操作

一、实验目的、意义

(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];

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2