赞
踩
假设在周末舞会上,男士和女士进入舞厅,各自排成一队,跳舞开始时,依次从男队和女队的队头各出一人配成舞伴。若两队初始人数不相同,那么较长的那一对中未配对者等待下一轮舞曲,试写一种算法模拟上面的舞伴问题
我们可以看出这是一个典型的队列问题,我们只需要把男士队和女士队看成队列,我们可以把男士和女士的信息都存储在一个数组中,再根据不同的性别存储到不同的队列中。然后开始给队列配对,当有一个队列为空的时候,另外一个队列有等待者,则输出队头等待者的姓名,此人将是下一个可以获得舞伴的人
#include<iostream> using namespace std; #define MAXSIZE 100 #define Status int #define OK 1 #define ERROR 0 #define QElemType Person typedef struct{ //跳舞者的个人信息 char name[20]; char sex; }Person; typedef struct{ Person *base; int font; int rear; }SqQueue; Status InitQueue(SqQueue &Q)//队列初始化 { Q.base=new QElemType[MAXSIZE]; if(!Q.base) exit(0); Q.font=Q.rear=0; return 0; } Status EnQueue
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。