数据结构实验报告姓名学号实验地点数学楼指导老师实验名称队列的表示与实现1、实验目的了解和掌握队列的数据类型描述及其特点;完成链队列的初始化、入队、出队、取对头元素、显示操作的实现;掌握队列的链式存储表示与基本操作算法实现;掌握队列在实际问题中的应用和基本编程技巧。2、实验方法队列的抽象数据类型定义:ADT Queue{//数据对象:D={a[i]|a[i]∈ElemSet,i=1,2,..。,n,n〉=0}//数据关系:R1={〈a[i—1],a[i]〉|a[i—1],a[i]∈D,i=2,.。。,n} //约定其中 a[1]端为队列头,a[n]端为队列尾//基本操作:InitQueue(&Q)//操作结果:构造一个空队列 Q。DestoryQueue(&Q)//初始条件:队列 Q 已存在//操作结果:队列 Q 被销毁,不再存在ClearQueue(&Q)//初始条件:队列 Q 已存在//操作结果:将 Q 清为空队列QueueEmpty(Q)//初始条件:队列 Q 已存在 //操作结果:若队列 Q 为空队列,则返回 TRUE,否则 FALSEQueueLength(Q)//初始条件:队列 Q 已存在 //操作结果:返回 Q 的元素个数,即队列的长度GetHead(Q,&e)//初始条件:Q 为非空队列 //操作结果:用 e 返回 Q 的队头元素EnQueue(&Q,e)//初始条件:队列 Q 已存在 //操作结果:插入元素 e 为 Q 的新的队尾元素DeQueue(&Q,&e)//初始条件:Q 为非空队列 //操作结果:删除 Q 的队头元素,并用 e 返回其值QueueTraverse(Q,visit())//初始条件:Q 已存在且非空 //操作结果:从队头到队尾,依次对 Q 的每个数据元素调用函数 visit().一旦 visit()失败,则操作失败。}ADT Queue与线性表类似,队列有两种存储表示链队列和循环队列。//--—--基本操作的函数原型说明-——-—status INitQueue(LinkQueue &Q)//构造一个空队列 QStatus DestoryQueue(LinkQueue &Q)//销毁队列 Q,Q 不再存在Status ClearQueue(LinkQueue &Q)//将 Q 清为空队列Status QueueEmpty(LinkQueue Q)//若队列 Q 为空队列,则返回 TRUE,否则返回 FALSEint QueueLength(LinkQueue Q)//返回 Q 的元素个数,即为队列的长度Status GetHead(LinkQueue Q,QElemType &e)//若队列不空,则用 e 返回 Q 的队头元素,并返回 OK;否则返回 ERRORStatus ENQueue(LinkQueue &Q,QElemType e)//插入元素 e 为 Q 的新的队尾元素Status DeQueue(LinkQueue &Q,QElemType &e)//若队列不空,则删除 Q 的...