注:此代码使用的是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 ERROR

本文介绍了一个使用C语言编写的队列算法,用于解决舞伴匹配问题。通过设立两个队列分别存储男士和女士,遍历输入数组按性别入队,然后依次出队配对,直至所有人均找到舞伴。如果最后有剩余,则输出队头等待者,为下一轮匹配做好准备。
最低0.47元/天 解锁文章
9038

被折叠的 条评论
为什么被折叠?



