数据结构实验项目三:队列的基本操作应用
来源:互联网 发布:通达信日线数据 编辑:程序博客网 时间:2024/06/05 02:03
本代码设计了变量n,即n个舞伴。
代码如下:
#include <iostream>#include <stdlib.h> #include <string.h> #include <cstdio>#define maxqsize 100using namespace std;typedef struct //跳舞者个人信息 {char name[20];char sex;//男生性别用m来表示,女生性别用f来表示}person;typedef struct //队列的顺序存储结构 {person *base;int front;int rear;}sqqueue; bool initqueue(sqqueue &Q) //队列的初始化 {Q.base =new person[maxqsize]; //为队列分配一个最大容量为maxqsize的数组空间 if(!Q.base ) exit(0); //存储分配失败 Q.front =Q.rear =0; //头指针和尾指针为零,队列为空 return true;}bool queueempty(sqqueue Q) //判断队列是否为空 { if(Q.front==Q.rear) return true; else return false; }int queuelength(sqqueue Q) //求队列长度 {return (Q.rear -Q.front +maxqsize)%maxqsize;}bool enqueue(sqqueue &Q,person e) //队列的入队 {if ((Q.rear +1)%maxqsize==Q.front)return false;Q.base[Q.rear ]=e;Q.rear =(Q.rear +1)%maxqsize;return true;}bool dequeue(sqqueue &Q,person &e) //队列的出队 {if(Q.front ==Q.rear )return false;e=Q.base [Q.front ];Q.front =(Q.front +1)%maxqsize;return true;}person gethead(sqqueue Q) //取队列的队头元素 {if(Q.front!=Q.rear )return Q.base[Q.front];}void dancepartner(person dancer[],int num) // 舞伴配对 {sqqueue mdancers,fdancers;person p;initqueue(mdancers); //男生队列初始化 initqueue(fdancers); //女生队列初始化 for(int i=0;i<num;i++) //依次将跳舞者根据其性别入队 {p = dancer[i];if(p.sex=='f') enqueue(fdancers,p);//插入女队 else enqueue(mdancers,p);//插入男队 }cout<<endl;cout<<"--成功配对的舞伴--\n";while(!queueempty(fdancers)&&!queueempty(mdancers)){dequeue(fdancers,p); //女生出队 cout<<" "<<p.name<<"--";//输出出队女生姓名 dequeue(mdancers,p);//男生出队cout<<p.name<<endl;//输出出队男生姓名 }if(!queueempty(fdancers)) //女生队列非空,输出队头女生的姓名 {p=gethead(fdancers); //取女生队头 cout<<endl;cout<<"下次第一个匹配舞伴的女生是: "<<p.name<<endl;}else if(!queueempty(mdancers)) //男生队列非空,输出队头男生的姓名{p=gethead(mdancers);//取男生队头cout<<"下次第一个匹配舞伴的男生是: "<<p.name<<endl;}}int main(){person dancer[1000];int n; cout<<"请输入所有舞者的人数: "; cin>>n; cout<<endl;cout<<"请输入"<<n<<"个舞者的信息: "<<endl<<endl; //男生性别用m来表示,女生性别用f来表示 for(int i=0;i<n;i++){cout<<"**请输入第"<<i+1<<"个舞者的信息: "<<endl; cout<<" 姓名:" ; cin>>dancer[i].name;cout<<" 性别:" ;cin>>dancer[i].sex; }dancepartner(dancer,n);return 0;}
阅读全文
0 0
- 数据结构实验项目三:队列的基本操作应用
- 数据结构:实验四栈和队列的基本操作实现及其应用
- 实验三 栈和队列的基本操作实现及其应用
- 实验三:栈和队列的基本操作实现及其应用——顺序栈
- 实验三 栈和队列的基本操作实现及其应用
- 实验三 栈和队列的基本操作实现及其应用 (1)
- 数据结构队列的基本操作
- 数据结构 队列的基本操作
- 【数据结构】 队列的基本操作
- 【数据结构】队列的基本操作
- [数据结构]队列的基本操作
- 队列的基本操作 数据结构
- (三)实际项目中数据结构—队列的应用
- (三)实际项目中数据结构—队列的应用
- 爹地的实验:实验一: 数据结构实验一线性表的基本操作实现及其应用
- 实验三 顺序栈的基本操作实现及其应用
- 实验项目二:栈的基本操作及其应用
- 数据结构_实验3:队列的应用
- Spring的IoC容器实现
- 第14章 高级I/O函数
- python3 使用决策树进行分类
- 理解dojo.require机制
- 数据类型
- 数据结构实验项目三:队列的基本操作应用
- Leetcode二分查找算法
- An Easy Problem?! POJ 2826 计算几何
- ubuntu快速安装实现keepalived的主备切换
- augular之通讯HttpClient
- Percona XtraBackup 完全及增量备份与恢复的方法
- 求水仙花数
- C++得到函数执行所用时间
- Ruby基础学习(一)