回 帖 发 新 帖 刷新版面

主题:帮忙解决一个问题

学生搭配问题
 一班有m个女生,有n个男生(m不等于n),现要开一个舞会. 男女生分别编号坐在舞池的两边的椅子上.每曲开始时,依次从男生和女生中各出一人配对跳舞, 本曲没成功配对者坐着等待下一曲找舞伴.
  请设计一系统模拟动态地显示出上述过程,要求如下:
1)    输出每曲配对情况
2)    计算出任何一个男生(编号为X)和任意女生(编号为Y),在第K曲配对跳舞的情况.至少求出K的两个值.
3)    尽量设计出多种算法及程序,可视情况适当加分
 提示:用队列来解决比较方便.

回复列表 (共3个回复)

沙发

循环队列问题而已

板凳

帮个忙解决以下

3 楼

源代码不给
给你思路:队列原型
struct student{
  int id;
  struct student* next;
}
建立男女生队列:
struct queue{
  struct student* first;
  struct student* last;
}*boy,*girl;
写好队列的基本运算函数以后,记得闭合已经建立好的队列(把队尾指针的下节点指针指向队头)
配对的时候移动队头指针直到一方的队头和队尾重合,记录下队头移动的次数,队尾移动相应次

我来回复

您尚未登录,请登录后再回复。点此登录或注册