欢迎来到天天文库
浏览记录
ID:30767349
大小:237.77 KB
页数:5页
时间:2019-01-03
《c语言_数据结构_实验4》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验四:队列子系统1.实验目的:(1)掌握队列的特点及其描述方法。(2)用链式结构实现一个队列。(3)掌握队列的各种基本操作。(4)掌握队列的简单应用程序。2.实验内容:(1)设计一个字符型的链队列;(2)编写队列的进队、出队、读队头元素、显示队列中全部元素程序;(3)设计一个输入限制性的双队列,要求:输入只能在一端进行,而输出可以选择从队头输出或队尾输出,全部选择完毕后能显示所选择的输出结果。(4)设计一个选择式菜单,以菜单方式选择队列的各种基本操作。菜单形式如下:队列子系统*1进队**2出队**3读队头元素**4显示**5双队列**0退出*^T%^T%^T%^T%xi%xi%x
2、T%^Y%^Y%^Y%^T%■.、•■、•■、•■、•■、请选择菜单号:3.参考程序#includeattincludetypedeFstructqueuenode<=intdata;structqueuenode*next;}queuenode;typedefstruct3、个整数:");scanFC^d11,&x);getchar();p->data=x;p->next=NULL;if(q->Front==NULL)q->front=p;elseq->rear->next=p;q->rear=p;if(P)printF(-tUd进队成功!Jx);>V队列・h-记事本口回冈'文件0)編辑0)格式©查看辺帮助01)intOutQueue(linkqueue*q,int*u)front==NULL)return0;elseFront;*u=p->data;q->Front=p->next;if(q-4、>front==NULL)q->rear=NULL;deletep;return1;}>〃出队操作AuoidShowQueue(linkqueue*q)Front;if(p==NULL)printf(-tt队列为空八*);elsedata);Vp=p->next;八>printFCAn*");uoidReadFront(linkqueue*q)〃读队首元素5、6、q->front==NULL)printFCAtXt7、队列为空?没有队顶元素W);elseprintFCAnXtXt队首元素是:%4do-,,q->front->data);>〃输入受限制的双队列ttdefineMAXLEN20intqueue[MAXLEN];intFront=-1;intrear=-1;〃输入队列数据uoidInQueue(intual)8、r--];if(rear<0&&front?=-1)rear=MAXLEN-1;returnt;>〃从前端输岀队列数据intOutQueue_front()〃输入限制性双向队列uoidDQ()intchoice;intout[5];intin[5]={5,4,3,2,1};八intt,pos=9,i;for(i-0;i<5;i++)InQueue(in[i]);printFCAnXtXt初始数据顺序是:i#);For(i=9、0;i<5;i**)printF(-[%d]gi,in[i]);printfCAn11);while(front?=rear)PrintF(-tt1从头岀臥printf(-tt2从尾岀队"〉;printf(-tt请选择:,f);scanF(ii^d>,,&choicg);switch(choice)
3、个整数:");scanFC^d11,&x);getchar();p->data=x;p->next=NULL;if(q->Front==NULL)q->front=p;elseq->rear->next=p;q->rear=p;if(P)printF(-tUd进队成功!Jx);>V队列・h-记事本口回冈'文件0)編辑0)格式©查看辺帮助01)intOutQueue(linkqueue*q,int*u)front==NULL)return0;elseFront;*u=p->data;q->Front=p->next;if(q-4、>front==NULL)q->rear=NULL;deletep;return1;}>〃出队操作AuoidShowQueue(linkqueue*q)Front;if(p==NULL)printf(-tt队列为空八*);elsedata);Vp=p->next;八>printFCAn*");uoidReadFront(linkqueue*q)〃读队首元素5、6、q->front==NULL)printFCAtXt7、队列为空?没有队顶元素W);elseprintFCAnXtXt队首元素是:%4do-,,q->front->data);>〃输入受限制的双队列ttdefineMAXLEN20intqueue[MAXLEN];intFront=-1;intrear=-1;〃输入队列数据uoidInQueue(intual)8、r--];if(rear<0&&front?=-1)rear=MAXLEN-1;returnt;>〃从前端输岀队列数据intOutQueue_front()〃输入限制性双向队列uoidDQ()intchoice;intout[5];intin[5]={5,4,3,2,1};八intt,pos=9,i;for(i-0;i<5;i++)InQueue(in[i]);printFCAnXtXt初始数据顺序是:i#);For(i=9、0;i<5;i**)printF(-[%d]gi,in[i]);printfCAn11);while(front?=rear)PrintF(-tt1从头岀臥printf(-tt2从尾岀队"〉;printf(-tt请选择:,f);scanF(ii^d>,,&choicg);switch(choice)
Front;*u=p->data;q->Front=p->next;if(q-
4、>front==NULL)q->rear=NULL;deletep;return1;}>〃出队操作AuoidShowQueue(linkqueue*q)Front;if(p==NULL)printf(-tt队列为空八*);elsedata);Vp=p->next;八>printFCAn*");uoidReadFront(linkqueue*q)〃读队首元素5、6、q->front==NULL)printFCAtXt7、队列为空?没有队顶元素W);elseprintFCAnXtXt队首元素是:%4do-,,q->front->data);>〃输入受限制的双队列ttdefineMAXLEN20intqueue[MAXLEN];intFront=-1;intrear=-1;〃输入队列数据uoidInQueue(intual)8、r--];if(rear<0&&front?=-1)rear=MAXLEN-1;returnt;>〃从前端输岀队列数据intOutQueue_front()〃输入限制性双向队列uoidDQ()intchoice;intout[5];intin[5]={5,4,3,2,1};八intt,pos=9,i;for(i-0;i<5;i++)InQueue(in[i]);printFCAnXtXt初始数据顺序是:i#);For(i=9、0;i<5;i**)printF(-[%d]gi,in[i]);printfCAn11);while(front?=rear)PrintF(-tt1从头岀臥printf(-tt2从尾岀队"〉;printf(-tt请选择:,f);scanF(ii^d>,,&choicg);switch(choice)
5、
6、q->front==NULL)printFCAtXt
7、队列为空?没有队顶元素W);elseprintFCAnXtXt队首元素是:%4do-,,q->front->data);>〃输入受限制的双队列ttdefineMAXLEN20intqueue[MAXLEN];intFront=-1;intrear=-1;〃输入队列数据uoidInQueue(intual)8、r--];if(rear<0&&front?=-1)rear=MAXLEN-1;returnt;>〃从前端输岀队列数据intOutQueue_front()〃输入限制性双向队列uoidDQ()intchoice;intout[5];intin[5]={5,4,3,2,1};八intt,pos=9,i;for(i-0;i<5;i++)InQueue(in[i]);printFCAnXtXt初始数据顺序是:i#);For(i=9、0;i<5;i**)printF(-[%d]gi,in[i]);printfCAn11);while(front?=rear)PrintF(-tt1从头岀臥printf(-tt2从尾岀队"〉;printf(-tt请选择:,f);scanF(ii^d>,,&choicg);switch(choice)
8、r--];if(rear<0&&front?=-1)rear=MAXLEN-1;returnt;>〃从前端输岀队列数据intOutQueue_front()〃输入限制性双向队列uoidDQ()intchoice;intout[5];intin[5]={5,4,3,2,1};八intt,pos=9,i;for(i-0;i<5;i++)InQueue(in[i]);printFCAnXtXt初始数据顺序是:i#);For(i=
9、0;i<5;i**)printF(-[%d]gi,in[i]);printfCAn11);while(front?=rear)PrintF(-tt1从头岀臥printf(-tt2从尾岀队"〉;printf(-tt请选择:,f);scanF(ii^d>,,&choicg);switch(choice)
此文档下载收益归作者所有