#include<iostream>
#include<cstring>
using namespace std;
#define MAXQSIZE 100
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
typedef struct{
char name[20];
char sex;
}Person;
typedef Person QElemType;
typedef struct{
QElemType *base;//初始化时动态分配存储空间
int front;//头指针
int rear;//尾指针
}SqQueue;
//算法3.13 循环队列的初始化
Status InitQueue(SqQueue &Q)
{ // 构造一个空队列Q
Q.base = new QElemType[MAXQSIZE];
if(!Q.base)
{
return OVERFLOW; // 存储分配失败
}
Q.front = 0;
Q.rear = 0;
return OK;
}
//算法3.14 求循环队列的长度
int QueueLength(SqQueue Q)
{// 返回Q的元素个数,即队列的长度
return (Q.rear-Q.front+MAXQSIZE)%MAXQSIZE;
}
//算法3.15 循环队列的入队
Status EnQueue(SqQueue &Q,QElemType e)
{// 插入元素e为Q的新的队尾元素
if((Q.rear+1)%MAXQSIZE == Q.front)
{
return ERROR;//尾指针在循环意义上加1后等于头指针,表明队满
}
Q.base[Q.rear] = e;
Q.rear = (Q.rear+1)%MAXQSIZE;
return OK;
}
//算法3.16 循环队列的出队
Status DeQueue(SqQueue &Q,QEle
舞伴配对问题
最新推荐文章于 2022-10-05 17:41:44 发布
本文通过C++实现了一个使用循环队列进行舞伴配对的程序。程序包括初始化队列、插入舞者、分配舞伴等功能。通过循环队列,实现了舞伴的高效配对和查找。
摘要由CSDN通过智能技术生成