类C语言--队列--舞伴问题--(算法与数据结构)

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

注:此代码使用的是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
  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值