【数据结构C语言-队列】舞伴配对
/*
舞伴配对问题
来舞蹈室的顺序:
男-姓名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语言-队列】舞伴配对相关推荐
- 小白也能看懂的c语言队列入门问题——舞伴问题
数据结构(舞伴问题)--队列问题解决 舞伴问题:假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队.跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴.若两队初始人数不相同,则较长的那一队中未 ...
- c语言动态双端栈的原理,数据结构(C语言版)例题(第三章:栈和队列)
数据结构(C语言版)例题(第三章:栈和队列) 数据结构(C语言版)例题(第三章:栈和队列) (2008-05-09 12:33:13) 转载▼ ◆3.15③ 假设以顺序存储结构实现一个双向栈,即在一维 ...
- 数据结构(C语言第二版)严蔚敏编,数据结构电子教材,线性表,栈,队列,顺序存储结构,初始化,入栈,出栈,入队,出队,c++
前言 提示:本篇文章收录严蔚敏编写的数据结构C语言版本 简单介绍一下顺序表,顺序栈,循环队列,的顺序存储结构之间的区别 代码参考严蔚敏编写的<数据结构>,二维码动态演示可扫码可观看. - ...
- c语言编程队列题,数据结构C语言编程 队列.doc
数据结构C语言编程 队列 #include #include #define MAXQSIZE 10 typedef struct { int *base; //存储空间的起始地址,即数组的首地址,即 ...
- 【数据结构 C语言版】第六篇 栈、队列经典必刷面试考研题
[数据结构 C语言版]第六篇 栈.队列经典必刷面试考研题 写在前面 更新情况记录: 最近更新时间 更新次数 2022/10/20 1 参考博客与书籍以及链接: (非常感谢这些博主们的文章,将我的一些疑 ...
- 【数据结构 C语言版】第五篇 队列(看完刷题无敌)
[数据结构 C语言版]第五篇 队列(看完刷题无敌) 写在前面 更新情况记录: 最近更新时间 更新次数 2022/10/19 1 参考博客与书籍以及链接: (非常感谢这些博主们的文章,将我的一些疑问得到 ...
- 数据结构C语言版字符串,数据结构c语言版
数据结构c语言版是一款非常使用的数据结构课程的编写和教材:它也可将软件作为学习数据结构.算法C程序设计的参数教材,只需要用户学习该软件之后,就算遇到在繁杂的代码也可以清晰的写出来,本书的钱半部分主要介 ...
- 数据结构(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 依次进栈,则 ...
- 翻转课堂模拟舞伴配对
队列是逻辑上一维的线性数据结构.所以在队列的代码实现中,很自然采用一维数组来存储队列的元素. 队列是一种先进先出的线性表,它只允许在一端(队尾)执行插入操作,而在另一端(队头)执行删除操作. 由于队列 ...
最新文章
- 8.2-指令周期(学习笔记)
- Loadrunner11录制过程中报错:由于另一个程序正在运行中,此操作无法完成
- java 反射 镜子,java反射机制 - 巍巍的个人页面 - OSCHINA - 中文开源技术交流社区...
- C# 使用SFTP的上传下载文件时如何使用代理
- 华为鸿蒙系统英语报纸_“鸿蒙”系统的英文名叫这个!华为注册的这些《山海经》神兽都该怎么翻译?...
- python实现将子文件夹下的图片复制到新的文件夹并重命名
- 使用angrutils生成控制流图出错的解决过程
- 各种操作系统中密码文件的位置
- STM32WL开发之LORA产品选型
- 自己组装电脑配置清单 2021年组装电脑配置清单推荐
- linux内核audit,linux下的audit服务
- 支付宝自动支付程序1.1算法注册机 Code.By.HackWm[D.S.T].
- 英雄联盟服务器维护时间是多久,英雄联盟更新维护到几点今天? LOL10月15日停机维护多久几点开服...
- 单片机延时C语言程序
- 美颜技术---引导滤波 Guided Filter
- 什么样的程序员才算得上优秀,把导师曾对我说的话送给大家(比代码更重要的事)
- n-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter convertView
- 谷歌浏览器插入百度翻译插件
- 爱说分手 吹了9个男朋友
- 招聘 | 华为中央研究院-图计算-科研实习生-杭州/上海/南京/北京/深圳
热门文章
- npm 内部机制的理解
- 开源之夏 2022 开启,提交项目当导师
- hp笔记本安全模式启动linux,惠普笔记本如何进入安全模式,教您惠普笔记本进入安全模式的方法...
- 远程连接工具radmin2.2
- Openssl适配win2000系统总结
- ios safari 模拟器_iOS开发之Safari调试WebView页面
- python制作圣诞贺卡_CodeCards:在线创建你的HTML5圣诞贺卡
- 用PPA下载codeblocks
- ADSP-21565的开发详解(三)Flash编程和烧写实现脱机运行的详细说明
- 小红书能撑起200亿美元估值吗?