循环队列的应用——舞伴配对问题:在舞会上,男、女各自排成一队。舞会开始时,依次从男队和女队的队头各出一人配成舞伴。如果两队初始人数不等,则较长的那一队中未配对者等待下一轮舞曲。假设初始男、女人数及性别已经固定,舞会的轮数从键盘输入。试模拟解决上述舞伴配对问题。要求:从屏幕输出每一轮舞伴配对名单,如果在该轮有未配对的,能够从屏幕显示下一轮第一个出场的未配对者的姓名。

//循环队列的常用函数

#include

#include

#define Maxsize 100

typedef struct{

int *base;

int front;

int rear;

int k; //记录初始位置

}squeue;

int a,b,i,j,n,m1,m2,m;

void Initqueue(squeue &Q)

{

Q.base=(int*)malloc(Maxsize*sizeof(int));

if (!Q.base)

exit(1);

Q.front=Q.rear=Q.k=0;

}

void Push(squeue &Q,int e)

{

if ((Q.rear+1)%Maxsize==Q.front) //队满处理

return;

Q.base[Q.rear]=e;

Q.rear=(Q.rear+1)%Maxsize;

}

void Pop(squeue &Q,int &e)

{

if (Q.rear==Q.front) //判空处理

return;

e=Q.base[Q.front];

Q.front=(Q.front+1)%Maxsize;

if (Q.front==Q.rear)

{

Q.front=Q.k;

}

}

void GetHead(squeue Q)

{

printf("%d\n",Q.base[Q.front]);

}

int main()

{

squeue Q,P;

Initqueue(P);

Initqueue(Q);

printf("请输入舞会轮数:\n");

scanf("%d",&n);

printf("请输入男生人数:\n");

scanf("%d",&m1);

printf("请对男生进行编号:\n");

for (i=1;i<=m1;i++)

{

scanf("%d",&P.base[i]);

Push(P,P.base[i]);

}

printf("请输入女生人数:\n");

scanf("%d",&m2);

for (i=1;i<=m2;i++)

{

scanf("%d",&Q.base[i]);

Push(Q,Q.base[i]);

}

m=m1

for (i=1;i<=n;i++)

{

printf("第%d轮舞会:\n",i);

for (j=1;j<=m;j++)

{

Pop(P,a);

Pop(Q,b);

printf("%d %d\n",a,b);

}

}

return 0;

}

舞伴配对问题java_舞伴配对问题相关推荐

  1. 循环队列的应用——舞伴配对问题:在舞会上,男、女各自排成一队。舞会开始时,依次从男队和女队的队头各出一人配成舞伴。如果两队初始人数不等,则较长的那一队中未配对者等待下一轮舞曲。假设初始男、女人数及性别

    欢迎加qq群:453398542 学习讨论,会定期分享资料课程,解答问题. 循环队列的应用--舞伴配对问题:在舞会上,男.女各自排成一队.舞会开始时,依次从男队和女队的队头各出一人配成舞伴.如果两队初 ...

  2. 舞伴配对问题(顺序队列)

    先入队的男士或者女士先出队配成舞伴,因此设置两个队列分别存放男士和女士入队者.假设男士和女士的记录存放在一个数组中作为输出,然后依次查找该数组的各元素,并根据性别来决定是进男队还是进女队.当这两个队列 ...

  3. 舞伴配对问题c语言实训报告,C语言数据结构队列实现舞伴匹配(数据结构第二次实验)...

    C语言实验作业 题目如下: 课程名称:数据结构 实验目的: 1.掌握队列的定义及实现: 2.掌握利用队列的基本操作. 实验要求: 1.    使用链式结构完成队列的各种基本操作: 2.    补充完善 ...

  4. c++ 舞伴配对问题_挑战新物体描述问题,视觉词表解决方案超越人类表现

    编者按:最近,研究者们发布了 nocaps 挑战,用以测量在没有对应的训练数据的情况下,模型能否准确描述测试图像中新出现的各种类别的物体.针对挑战中的问题,微软 Azure 认知服务团队和微软研究院的 ...

  5. c++ 舞伴配对问题_R绘图:配对样本差异表达作图ggpubr

    R绘图往期回顾: R绘图:唱一半的歌,画一半的图 gghalves R绘图:gggibbous,基于ggplot2的Moon charts R绘图:ggeconodist,基于ggplot2的另类箱图 ...

  6. 【数据结构 - 栈和队列】自学笔记记录(更新中……)

    目录 一.栈 1.栈的定义及特点 2.顺序栈 1.顺序栈的存储结构 2.创建一个空顺序栈 3.顺序栈入栈 4.顺序栈出栈 ​ 5.顺序栈取栈顶元素 6.清空一个顺序栈 7.销毁一个顺序栈 8.计算顺序 ...

  7. 题目描述 假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。规定每个舞曲能有一对跳舞者。若两队初始人数不相同,则较长的那一队中未配对者等待

    题目描述 假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队.跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴.规定每个舞曲能有一对跳舞者.若两队初始人数不相同,则较长的那一队中未配对者等待 ...

  8. 使用队列 模拟跳舞舞伴Java实现

    题目: 假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队. 和女队的队头上各出一人配成舞伴.若两队初始人数不相同,则较长的一队未配对者等待下一轮舞曲,现要求写一算法模拟上述舞伴配对问题. 代码 ...

  9. 【数据结构C语言-队列】舞伴配对

    /* 舞伴配对问题 来舞蹈室的顺序: 男-姓名1:男-姓名2:女-姓名3:男-姓名4: 女-姓名5:男-姓名6:男-姓名7:女-姓名8: 最终配对顺序: 男1-女3:男2-女5:男4-女8:男:男: ...

最新文章

  1. 一个httpwebrequest异步下载的例子
  2. 三相全桥电压型PWM逆变器(交直交)Simulink仿真
  3. 【干货】五天,谷歌如何制作一款App?
  4. ios 查询mysql数据库操作系统_iOS数据库FMDB--增删改查(模糊查询)详细介绍
  5. 离线部署CDH5.16.1及各种坑
  6. g++编译时的常用选项说明
  7. array.prototype.map()如何工作
  8. macos 安装scala_如何在MacOS上安装Scala和Apache Spark
  9. php四种基础算法:冒泡,选择,插入和快速排序法PHP基础教程
  10. Android逐帧动画的实现
  11. [高通MSM8953_64][Android10]新增并挂载custom分区
  12. Java菱形的面积_用java打印菱形。
  13. background 与 background-image
  14. 深度学习数据增强(data_augmentation):Keras ImageDataGenerator
  15. 基于JSP(java)网络百宝箱的设计和实现(含源文件)
  16. activiti+testng批量测试用例-请假流程
  17. 分布式Session共享和单点登录实现
  18. 怿星科技参加2022(第六届)高工智能汽车年会
  19. PS仿真-GUN ACCESS操作
  20. 电商B2C商铺新用户复购预测(一)

热门文章

  1. Python判断变量的数据类型的两种方法
  2. CenterOs 防火墙设置
  3. 《OpenGL ES 2.0游戏开发(上卷):基础技术和典型案例》——6.5节光照的每顶点计算与每片元计算...
  4. 好文章,被架构师秒杀之后
  5. 如何在Django模板中注入全局变量
  6. ASP.NET MVC3书店--第五节 表单编辑(第二部分)(转)
  7. ***清除工具的进化
  8. 如何优化JavaScript脚本的性能
  9. nand flash坏块管理OOB,BBT,ECC
  10. 【图像处理】——上采样、下采样、在模板匹配中的金字塔加速策略