授课题目队列的应用——舞伴配对问题授课类型课首次授课_第1页
授课题目队列的应用——舞伴配对问题授课类型课首次授课_第2页
授课题目队列的应用——舞伴配对问题授课类型课首次授课_第3页
授课题目队列的应用——舞伴配对问题授课类型课首次授课_第4页
授课题目队列的应用——舞伴配对问题授课类型课首次授课_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、授课题目队列的应用一一舞伴配对问题授课类型实验课首次授课时间2021年9月30日学时2教学目标1 .掌握队列的类型定义方法;2 .理解和掌握循环队列解决假溢出的方法,并能灵活运用队列知识对现实生活中的实际问题提出解决方案.重点与难点循环队列判断队满和队空的条件以及循环队列的应用教学手段与方法上机编程、调试并进行验证教学过程:包括授课思路、过程设计、讲解要点及各局部具体内容、时间分配等实验内容:利用循环队列模拟舞伴配对问题:在舞会上,男、女各自排成一队.舞会开始时.依次从男队和女队的队头各出一人配成舞伴.如果两队初始人数不等,那么较长的那一队中未配对者等待下一轮舞曲.要求:a.假设初始男、女人数

2、及性别已经固定,舞会的轮数从键盘输入,试模拟解决上述舞伴配对问题.b.从屏幕输出每一轮舞伴配对名单,如果在该轮有未配对的,能够从屏幕显示下一轮第一个出场的未配对者的姓名.编程思路:首先建立循环队列的存储结构,为了区分男女队,需要设置两个循环队列,队列中元素的数据类型分别为字符型和整型,然后设计如下函数:ManQueue(Q)和WomanQueue(Q)(建立男人和女人队列)以及PeiDui(Q1,Q2)(舞伴配对),程序描述如下:#include<stdio.h>#include<stdlib.h>#defineMAXQSIZE50typedefstructchar*b

3、ase;intfront;intrear;ManQueue;typedefstructint*base;intfront;intrear;WomanQueue;voidInitManQueue(ManQueue&M,intm)(M.base=(char*)malloc(MAXQSIZE*sizeof(char);if(!M.base)exit(0);M.front=M.rear=0;inti;printf("请输入外不同的字母代表扑不同的男生姓名n",m,m);for(i=0;i<m;i+)(scanf("%c,&M.basei);getch

4、ar();M.rear=i;if(M.rear+1)%MAXQSIZE=M.front)exit(0);voidInitWomanQueue(WomanQueue&W,intw)W.base=(int*)malloc(MAXQSIZE*sizeof(int);if(!W.base)exit(0);W.front=W.rear=0;inti;printf("请输入外不同的数字代表扑不同的女生姓名n",w,w);for(i=0;i<w;i+)scanf("%d,&W.basei);getchar();W.rear=i;if(W.rear+1)%M

5、AXQSIZE=W.front)exit(0);voidPeiDui(ManQueue&M,WomanQueue&W,intm,intw,intx)inti;if(m<w)for(i=1;i<=x;i+)printf"第晚中男女配对名单如下:n",i;M.front=0;while(M.front<M.rear)(if(W.front=W.rear)W.front=0;printf("%c与dn",M.baseM.front,W.baseW.front);M.front+;W.front+;if(W.front=W.re

6、ar)W.front=0;printf("下轮中第一个出场未配对者是:%dn",W.baseW.front);elsefor(i=1;i<=x;i+)(printf("第晚中男女配对名单如下:n",i);W.front=0;while(W.front<W.rear)(if(M.front=M.rear)M.front=0;printf("%c与dn",M.baseM.front,W.baseW.front);M.front+;W.front+;)if(M.front=M.rear)M.front=0;printf(&quo

7、t;下轮中第一个出场未配对者是:%cn",M.baseM.front);)voidmain()ManQueueM;WomanQueueW;intw,m,x;printf("请分别输入男生和女生人数m和w的值n");scanf("%d%d",&m,&w);/注意输入数据完后把回车符赋值给getchar,预防在接下的/输入中出现错误的赋值!getchar();InitManQueue(M,m);InitWomanQueue(W,w);printf("请输入要舞蹈的轮数x的值n");scanf("%d",&x);PeiDui(M,W,m,w,x);那么运行结果如下图:SJfAFrogramFilesMicrosoftVisual5tudioM-JOX请分别输入男生和女生人数描加的值请输入2个不同的字母代表2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论