注:此代码使用的是C语言,完全可以正常运行,在代码区下方附上运行界面,解决的是队列例题的舞伴匹配问题
思路:
1.设置两个队列分别存放男士和女士入队者
2.假设男士和女士的记录存放在一个数组中作为输入,然后依次扫描该数组的各元素,并根据性别来决 定是进入男队还是女队。
3.当这两个队列构造完成之后,依次将两队当前的队头元素出队来配成舞伴,直至某队列变空为止。
此时,若某队仍有等待配对者,则输出此队列中排在队头的等待者的姓名,此人将是下一轮舞曲开始时第一个可获得舞伴的人。
代码区
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100 //定义队列最大空间
#define N 4 //4为参加人数,此处可以自由设定
typedef struct
{
char name[50]; //姓名
char sex; //性别
}Dancer;
typedef struct
{
Dancer *base;
int front; //下标值
int rear;
}SqQueue;
enum Status{
ERROR,OK}; //本代码用的是枚举类型,此处可根据具体要求替换
//队列初始化
Status InitQueue(SqQueue &Q)
{
Q.base=(Dancer *)malloc(MAXSIZE*sizeof(Dancer));
if(!Q.base) return