3.7 一维数组a[m]存放循环队列的元素,设置变量num表示当前队列中元素的个数,判断队列的状态为’空’,还是’满’。试给出此循环队列满的条件,并编写入队和出队算法
#include<iostream>
#include<queue>
#define MaxSize 3
using namespace std;
struct SeqQueue
{
int a[MaxSize];//存放队列元素的数组
int front,rear;//队头和队尾指针
};
void Judge(SeqQueue q,int m){
if((q.rear)%m==q.front)//队满
q.front++;//队满时出队一个元素
q.rear=(q.rear+1)%m;
if(q.rear==q.front) cout<<"队列又满了";
}
//注:元素入队,rear后移;元素出队,front后移
int main()
{
SeqQueue q;
q.front=q.rear=0;
for(int i=0;i<MaxSize;i++)
q.rear=(q.rear+1)%MaxSize;//循环队列满
//q.front=(q.front+1)%MaxSize;//出队
Judge(q,MaxSize);
return 0;
}