数据结构 舞伴搭配问题完全代码

数据结构 舞伴搭配问题完全代码

ID:38700996

大小:58.50 KB

页数:6页

时间:2019-06-17

数据结构 舞伴搭配问题完全代码_第1页
数据结构 舞伴搭配问题完全代码_第2页
数据结构 舞伴搭配问题完全代码_第3页
数据结构 舞伴搭配问题完全代码_第4页
数据结构 舞伴搭配问题完全代码_第5页
资源描述:

《数据结构 舞伴搭配问题完全代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#include#include#include#include#definequeuesize5typedefstruct//定义结构体{charname[20];//定义一个长度为20的字符串,用来表示姓名charsex;//定义一个char变量sex,用来表示性别,规定m表示男性,f表示女性}person_type;typedefstruct//定义循环队列结构体队列{person_type*qBase;//储存空间基址intfront;//头指针,若队列不空,指向队列头元

2、素intrear;//尾指针,若队列不空,指向队列尾元素的下一个位置}cir_queue;voidinit_queue(cir_queue*q)//初始化循环队列{q->qBase=(person_type*)malloc(sizeof(person_type)*queuesize);//动态创建储存空间基址if(!q->qBase)//创建失败,退出程序!{printf("动态创建失败,程序终止!");exit(-1);}q->front=q->rear=0;}/*voidtraverse_queue(cir_queue*q)//遍历输出循环队列元素{i

3、nti=q->front;while(i!=q->rear)//当头指针与尾指针相等时结束while循环{printf("%s",q->qBase[i].name);//输出元素的名字i=(i+1)%queuesize;//解决假溢出问题}}*/boolfull_queue(cir_queue*q)//判断循环队列是否为满{//当尾指针的下一个位置等于头指针时,队列为满//为满返回true,否则返回falseif((q->rear+1)%queuesize==q->front)returntrue;elsereturnfalse;}boolempty_

4、queue(cir_queue*q)//判断循环队列是否为空{//当头指针位置等于尾指针时,循环队列为空,//为空返回true,否则返回falseif(q->front==q->rear)returntrue;elsereturnfalse;}voiden_queue(cir_queue*q,person_typep)//进队函数,使p进入队列{if(full_queue(q))//判断是否为满{printf("队列已满,无法实现进队操作,程序终止!");exit(-1);}else//不满进行操作{q->qBase[q->rear]=p;q->rear=

5、(q->rear+1)%queuesize;//尾指针指向下一个位置}}person_typede_queue(cir_queue*q)//出队函数,用p返回出队值{person_typep;if(empty_queue(q))//判断是否为空{printf("队列为空,无法实现出队操作,程序终止!");exit(-1);}else//不为空进行操作{p=q->qBase[q->front];q->front=(q->front+1)%queuesize;returnp;}}intlength_queue(cir_queue*q)//求循环队列元素个数{r

6、eturnq->rear-q->front;//尾指针位置减去头指针位置即可}person_typequeue_front(cir_queue*q)//访问队头元素,并返回{if(empty_queue(q))//判断是否为空{printf("队列为空,操作失败!");exit(-1);}returnq->qBase[q->front];}voiddancepartners(cir_queuefemaledancer,cir_queuemaledancer,intlun)//舞伴配对函数{intm=length_queue(&femaledancer);/

7、/计算女队人数intn=length_queue(&maledancer);//计算男队人数for(intj=1;j<=lun;++j)//for循环表示舞会进行的轮数情况{//通过对男女队人数的比较,进行一下操作if(m>n)//女队人数多于男队,女队有剩余队员{person_typep;person_typeq;person_types;printf("------------------------");printf("第%d轮配对情况:",j);for(inti=1;i<=n;++i)//for循环实现配对操作{p=de_queue(&male

8、dancer);q=de_queue(&femaledancer)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。