/*
舞伴配对问题
来舞蹈室的顺序:
男-姓名1;男-姓名2;女-姓名3;男-姓名4;
女-姓名5;男-姓名6;男-姓名7;女-姓名8;
最终配对顺序:
男1-女3;男2-女5;男4-女8;男;男;
实验过程:->main函数
1.建立舞者结构体,依次往队列里加入人员信息(8个人,5男3女)-scanf,struct
2.进行配对->函数功能:配对
(1)初始化两个队列——InitQueue()
(2)根据性别,分别向两个队列里插入元素——EnQueue()
(3)按照(男,女)、(男、女)...这样的顺序出队——DeQueue(),printf;若其中一个队列为空,另一个队列直接出队——QueueEmpty()
*/

#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100typedef struct
{char name[20];char sex;
}Dancer;typedef struct
{Dancer *base;int front;int rear;
}SqQueue;//初始化
int InitQueue(SqQueue *Q)
{Q->base=(Dancer *)malloc(sizeof(Dancer)*MAXSIZE);if(!Q->base) return 0;Q->front=Q->rear=0;return 1;
}//入队
int EnQueue(SqQueue *Q,Dancer e)
{if((Q->rear+1)%MAXSIZE==Q->front) return 0;Q->base[Q->rear]=e;Q->rear=(Q->rear+1)%MAXSIZE;return 1;
}//出队
int DeQueue(SqQueue *Q,Dancer *e)
{if(Q->front==Q->rear) return 0;*e=Q->base[Q->front];Q->front=(Q->front+1)%MAXSIZE;return 1;
}//判空
int QueueEmpty(SqQueue Q)
{if(Q.rear==Q.front) return 1;else return 0;
}int main()
{char a;SqQueue Men,Women;Dancer P,e1,e2;InitQueue(&Men);InitQueue(&Women);printf("请来到的舞友签到,输入姓名和性别(m/w),我们将会按照到来的次序为您安排舞伴:");for(int i=0;i<8;i++){printf("\n姓名:");scanf("%s",P.name);scanf("%c",&a);printf("性别:");scanf("%c",&P.sex);if(P.sex=='m')EnQueue(&Men,P);if(P.sex=='w')EnQueue(&Women,P);}printf("\n下面是配对信息:");while(!QueueEmpty(Men)&&!QueueEmpty(Women)){DeQueue(&Men,&e1);DeQueue(&Women,&e2);printf("\n%s(%c)&%s(%c)",e1.name,e1.sex,e2.name,e2.sex);}while(!QueueEmpty(Men)){DeQueue(&Men,&e1);printf("\n%s(%c)",e1.name,e1.sex);}while(!QueueEmpty(Women)){DeQueue(&Women,&e2);printf("\n%s(%c)",e2.name,e2.sex);}return 0;
}

【数据结构C语言-队列】舞伴配对相关推荐

  1. 小白也能看懂的c语言队列入门问题——舞伴问题

    数据结构(舞伴问题)--队列问题解决 舞伴问题:假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队.跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴.若两队初始人数不相同,则较长的那一队中未 ...

  2. c语言动态双端栈的原理,数据结构(C语言版)例题(第三章:栈和队列)

    数据结构(C语言版)例题(第三章:栈和队列) 数据结构(C语言版)例题(第三章:栈和队列) (2008-05-09 12:33:13) 转载▼ ◆3.15③ 假设以顺序存储结构实现一个双向栈,即在一维 ...

  3. 数据结构(C语言第二版)严蔚敏编,数据结构电子教材,线性表,栈,队列,顺序存储结构,初始化,入栈,出栈,入队,出队,c++

    前言 提示:本篇文章收录严蔚敏编写的数据结构C语言版本 简单介绍一下顺序表,顺序栈,循环队列,的顺序存储结构之间的区别 代码参考严蔚敏编写的<数据结构>,二维码动态演示可扫码可观看. - ...

  4. c语言编程队列题,数据结构C语言编程 队列.doc

    数据结构C语言编程 队列 #include #include #define MAXQSIZE 10 typedef struct { int *base; //存储空间的起始地址,即数组的首地址,即 ...

  5. 【数据结构 C语言版】第六篇 栈、队列经典必刷面试考研题

    [数据结构 C语言版]第六篇 栈.队列经典必刷面试考研题 写在前面 更新情况记录: 最近更新时间 更新次数 2022/10/20 1 参考博客与书籍以及链接: (非常感谢这些博主们的文章,将我的一些疑 ...

  6. 【数据结构 C语言版】第五篇 队列(看完刷题无敌)

    [数据结构 C语言版]第五篇 队列(看完刷题无敌) 写在前面 更新情况记录: 最近更新时间 更新次数 2022/10/19 1 参考博客与书籍以及链接: (非常感谢这些博主们的文章,将我的一些疑问得到 ...

  7. 数据结构C语言版字符串,数据结构c语言版

    数据结构c语言版是一款非常使用的数据结构课程的编写和教材:它也可将软件作为学习数据结构.算法C程序设计的参数教材,只需要用户学习该软件之后,就算遇到在繁杂的代码也可以清晰的写出来,本书的钱半部分主要介 ...

  8. 数据结构(C语言)第二版 第三章课后答案

    数据结构(C语言)第二版 第三章课后答案 1~5 C C D A A 6~10 D A B C D 11~15 D D B C B 1.选择题 (1)若让元素1, 2, 3 , 4, 5 依次进栈,则 ...

  9. 翻转课堂模拟舞伴配对

    队列是逻辑上一维的线性数据结构.所以在队列的代码实现中,很自然采用一维数组来存储队列的元素. 队列是一种先进先出的线性表,它只允许在一端(队尾)执行插入操作,而在另一端(队头)执行删除操作. 由于队列 ...

最新文章

  1. 8.2-指令周期(学习笔记)
  2. Loadrunner11录制过程中报错:由于另一个程序正在运行中,此操作无法完成
  3. java 反射 镜子,java反射机制 - 巍巍的个人页面 - OSCHINA - 中文开源技术交流社区...
  4. C# 使用SFTP的上传下载文件时如何使用代理
  5. 华为鸿蒙系统英语报纸_“鸿蒙”系统的英文名叫这个!华为注册的这些《山海经》神兽都该怎么翻译?...
  6. python实现将子文件夹下的图片复制到新的文件夹并重命名
  7. 使用angrutils生成控制流图出错的解决过程
  8. 各种操作系统中密码文件的位置
  9. STM32WL开发之LORA产品选型
  10. 自己组装电脑配置清单 2021年组装电脑配置清单推荐
  11. linux内核audit,linux下的audit服务
  12. 支付宝自动支付程序1.1算法注册机 Code.By.HackWm[D.S.T].
  13. 英雄联盟服务器维护时间是多久,英雄联盟更新维护到几点今天? LOL10月15日停机维护多久几点开服...
  14. 单片机延时C语言程序
  15. 美颜技术---引导滤波 Guided Filter
  16. 什么样的程序员才算得上优秀,把导师曾对我说的话送给大家(比代码更重要的事)
  17. n-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter convertView
  18. 谷歌浏览器插入百度翻译插件
  19. 爱说分手 吹了9个男朋友
  20. 招聘 | 华为中央研究院-图计算-科研实习生-杭州/上海/南京/北京/深圳

热门文章

  1. npm 内部机制的理解
  2. 开源之夏 2022 开启,提交项目当导师
  3. hp笔记本安全模式启动linux,惠普笔记本如何进入安全模式,教您惠普笔记本进入安全模式的方法...
  4. 远程连接工具radmin2.2
  5. Openssl适配win2000系统总结
  6. ios safari 模拟器_iOS开发之Safari调试WebView页面
  7. python制作圣诞贺卡_CodeCards:在线创建你的HTML5圣诞贺卡
  8. 用PPA下载codeblocks
  9. ADSP-21565的开发详解(三)Flash编程和烧写实现脱机运行的详细说明
  10. 小红书能撑起200亿美元估值吗?