队列的应用舞伴配对问题.doc
- 文档编号:1646777
- 上传时间:2022-10-23
- 格式:DOC
- 页数:5
- 大小:63KB
队列的应用舞伴配对问题.doc
《队列的应用舞伴配对问题.doc》由会员分享,可在线阅读,更多相关《队列的应用舞伴配对问题.doc(5页珍藏版)》请在冰豆网上搜索。
实验项目
队列的应用——舞伴配对问题
项目类型
综合型
完成时间
2009-10-20
实验目的及要求
掌握队列的类型定义方法;理解和掌握循环队列解决假溢出的方法,并能灵活运用以上队列知识对现实生活中的实际问题提出解决方案。
【实验过程】(实验步骤、绘图、记录、数据、分析、结果)
实验内容:
a.利用循环队列模拟舞伴配对问题:
在舞会上,男、女各自排成一队。
舞会开始时。
依次从男队和女队的队头各出一人配成舞伴。
如果两队初始人数不等,则较长的那一队中未配对者等待下一轮舞曲。
b.假设初始男、女人数及性别已经固定,舞会的轮数从键盘输入。
试模拟解决上述舞伴配对问题。
要求:
从屏幕输出每一轮舞伴配对名单,如果在该轮有未配对的,能够从屏幕显示下一轮第一个出场的未配对者的姓名。
实验步骤:
#include
#include
#include
typedefstructQNode
{
charname[10];
structQNode*next;
}QNode,*QueuePtr;
typedefstruct
{
QueuePtrfront;
QueuePtrrear;
}LinkQueue;
voidInitQueue(LinkQueue&Q)
{//构建一个空队列
Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));
if(!
Q.front)
exit(0);
Q.front->next=Q.front;
}//InitQueue
voidEnQueue(LinkQueue&Q,char*str)
{//将字符串入队
QueuePtrp;
p=(QueuePtr)malloc(sizeof(QNode));
if(!
p)
exit(0);
strcpy(p->name,str);
p->next=NULL;
Q.rear->next=p;
Q.rear=p;
}
voidDeQueue(LinkQueue&Q,char*str)
{//将结点删除后连接到队列的后方
QueuePtrp;
p=Q.front->next;
strcpy(str,p->name);
Q.front->next=p->next;
if(Q.rear==p)
Q.rear=Q.front;
free(p);
}
voidGetHead(LinkQueueQ,char*str)
{//若队列非空,取队头元素
QueuePtrp;
if(Q.front!
=Q.rear)
{
p=Q.front->next;
strcpy(str,p->name);
}
}
voidDancer(LinkQueue&Q1,LinkQueue&Q2)
{//实现配对,输出配对人名单,打印下一轮等待的人名
charstr[15],boy[15],girl[15],ch;
intb,g,i,k,ls,j;
printf("请输入男舞伴的人数:
\n");
scanf("%d",&b);
ch=getchar();
printf("请输入男舞伴的名字:
\n");
for(i=0;i
{
gets(str);
EnQueue(Q1,str);
}
printf("请输入女舞伴的人数:
\n");
scanf("%d",&g);
ch=getchar();
printf("请输入女舞伴的名字:
\n");
for(i=0;i { gets(str); EnQueue(Q2,str); } printf("请输入舞会的轮数: \n"); scanf("%d",&ls); if(b k=b; else k=g; for(i=0;i { printf("第%d轮数配对如下: \n",i+1); for(j=0;j { DeQueue(Q1,boy);DeQueue(Q2,girl); printf("%s<---->%s\n",boy,girl); EnQueue(Q1,boy);EnQueue(Q2,girl); } if(b { GetHead(Q2,str); printf("%s在等待\n",str); } else { GetHead(Q1,str); printf("%s在等待\n",str); } } } voidmain() { LinkQueueQ1,Q2; InitQueue(Q1); InitQueue(Q2); Dancer(Q1,Q2); } 实验运行结果 教师批阅评语: 成绩评定 教师签名: 年月日 优秀 良好 中等 及格 不及格
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 队列 应用 舞伴 配对 问题