
队列实验报告【新】.doc
6页队列实验报告一.实验项目名称循环队列和链式队列的创建 二、实验目的 1、掌握队列的特点(先进先出 FIFO)及基本操作,如入队、出队等, 2、队列顺序存储结构、链式存储结构和循环队列的实现,以便在实际问题背景下灵活应用三、实验内容 1.链式队列的实现和运算 2.循环队列的实现和运算 四、主要仪器设备及耗材 VC++6.0 运行环境实现其操作 五.程序算法 (1) 循环队列操作的算法 1> 进队列 Voidenqueue (seueueq, elemtype) {if ((q.rear+1)masize = = q.front)cout 出队列 Voiddlqueue(seueueq ) {if (q.rear= =q.front)cout 取对头元素 elemtypegethead(seueue q ) { if(q.rear= =q.front){ cout 判队列空否int empty(seueue q ) {if(q.rear= =q.front)reurn 1;else return 0;} (2).链队列操作的算法 1> .链队列上的初始化voidINIQUEUE( linkqueues){linkp;p=newlink;p->=NULL;//p 是结构体指针类型,用->s.front=p;//s 是结构体变量,用. s.rear=p;//头尾指针都指向头结点 } 2>.入队列 voidpush(linkqueue s, elemtype) {linkp;//p 是结构体指针类型,用->p=newlink;p->data=;p->=s.rear->;//s 是结构体变量,用. s.rear->=p;s.rear=p;//插入最后 } 3> 判队空 intempty( linkqueues ) {if (s.front= =s.rear) return 1;else return 0; } 4>.取队头元素elemtypegethead( linkqueue s ) {if (s.front= =s.rear)returnNULL;elseretuens.front->->data; } 5>.出 出 队列voidpop(linkqueue s) {linkp;p=s.front->; if (p->= =NULL)//链队列中只有一个元素,需要修改 rear 指针{s.front->=NULL;s.rear=s.front;} elses.front-> =p->;//rear 不用变 delete (p); } 六 六.程序代码 a.循环队列代码 #include #define MAN20 struct seq { char queue[MAN]; int front, rear;};void iniq(se) {q.front=q.rear=MAN-1; }void enq(seq q,char ) {if((q.rear+1)MAN==q.front)cout>i; while(i) { enq( q,i); cin>>i;} y=gethead( q); couttypedef struct QNode {char data;QNode ;}QNode,QueuePtr;typedef struct {QueuePtr front; QueuePtr rear; }LinkQueue;InitQueue(LinkQueue Q) {Q.front=Q.rear=new QNode;Q.front->=NULL;return 0; }EnQueue(LinkQueue Q,char e) {QueuePtr p;p=new QNode;p->data=e;p->=NULL;Q.rear->=p;Q.rear=p;return 0; }void disp(LinkQueue Q) //打印队列{QueuePtr p;p=Q.front->;while(p!=NULL){coutdata”;p=p->;}}DeQueue(LinkQueue Q,char e) {QueuePtr p;if(Q.front==Q.rear)return 1;p=Q.front->; e=p->data;Q.front->=p->;if(Q.rear==p)Q.rear=Q.front;delete p;return 0; }void main{LinkQueue Q;char e,e1;InitQueue(Q);cout>e;while(e!="0"){EnQueue(Q,e);cin>>e;}cout<<“队列为:”< 八、参考资料 a.《数据结构》 李根强主编中国国水利水电出版社 b.《C++语言程序设计》 郑莉董渊 何江舟编清华大学出版社第 6 页 共 6 页。












