《2022年数据结构实验队列的表示与操作 .pdf》由会员分享,可在线阅读,更多相关《2022年数据结构实验队列的表示与操作 .pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、注意事项:在磁盘上创建一个目录,专门用于存储数据结构实验的程序。因为机房机器有还原卡,请同学们将文件夹建立在最后一个盘中,以学号为文件夹名。实验四队列的表示与操作一、 实验目的1。掌握队列的掌握队列的类型定义, 掌握循环队列的表示与实现方法2掌握队列的基本操作:判空、元素入队、出队,删除队头元素基本操作:InitQueue()构造一个空队列Q QueueEmpty(Q) 判断队列是否为空QueueLenght(Q)返回队列 Q的元素个数,即队列的长度GetHead(Q,&e)取队列 Q的队头元素,并用e 返回InQueue(&Q,e) 将元素 e 入队列OutQueue(&Q,&e)删除非空队
2、列Q的队头元素,并用e 返回其值二、实验要求1 认真阅读和掌握本实验的算法。2 上机将本算法实现。3 将程序补完整,打印出程序的运行结果,并结合程序进行分析。三、实验内容程序: 设计一个循环队列的顺序表示和实现的演示程序参考程序如下:#include #include typedef int DataType; #define Maxsize 100 /*最大队列长度 */ typedef struct DataType dataMaxsize; /*初始化的动态分配存储空间*/ int front; /*头指针,若队列不空,指向队列头素元素的前一位置*/ int rear; /*尾指针,若队
3、列不空,指向队列尾元素位置*/ SeqQueue,*PSeqQueue; PSeqQueue InitQueue() /* 构造一个空队列Q*/ int QueueEmpty(PSeqQueue Q) /* 若队列 Q为空队列,则返回TRUE ,否则返回 FALSE*/ int QueueLength(PSeqQueue Q) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - /* 返回 Q的元素个数,即为队列的长度*/ int
4、GetHead(PSeqQueue Q,DataType &e) /* 若队列不为空,则用e 返回 Q的队头元素,并返回OK ;否则返回ERROR*/ int InQueue(PSeqQueue &Q,DataType e) /* 插入元素 e 为 Q的新的队尾元素 */ int OutQueue(PSeqQueue &Q,DataType &e) /* 若队列不空,则删除Q的队头元素,用e 返回其值,并返回OK,否则返回 ERROR*/ void main() PSeqQueue Q; int select; DataType e; if (Q=InitQueue()=NULL) cout分
5、配失败,即将退出程序!n; else/*否则显示队列操作的菜单,并选择相应的基本操作*/ do cout1:判断队列是否为空n; cout2:测试队列的长度n ; cout3:取队头元素值n; cout4:向队列中插入一新元素n; cout5:删除队列中一元素n; cout0:结束 n; coutselect; coutendl; switch (select) case 1: if (QueueEmpty(Q)=1) cout队列为空 n; else cout队列不为空 n;break; case 2: cout 队列长度为: QueueLength(Q)endl;break; case 3
6、: if(GetHead(Q,e)=-1) cout队列为空 n; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - - - - - - else cout队首元素为: eendl;break; case 4: coute; if(InQueue(Q,e)=-1) coutn队列满 n; else coutn元素成功插入 n;break; case 5: if(OutQueue(Q,e)=-1) cout队列空 , 无数据可删 n; else cout删除元素为: e;break; case 0: cout 操作结束 n;break; default: cout 输入选择出错! n; /*switch*/ coutendlendl; while (select); /*main_end*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -