【问题描述】根据循环队列的类型定义,完成循环队列的基本操作。主函数中测试队列。
【输入形式】一个整数m,表示入队的元素个数
【输出形式】第一行:输出队头元素 第二行:队列中元素依次出队以空格间隔
【样例输入】5
【样例输出】
1
1 3 5 7 9
【样例输入】0
【样例输出】
empty!
【样例说明】
#include<iostream>
using namespace std;
#include<stdlib.h>
#define MAX 100
struct circleQueue
{
int data[MAX];
int front,rear;
int count;
};
bool queueEmpty(circleQueue q)
{
return q.count==0;
}
bool queueFull(circleQueue q)
{
return q.count==MAX;
}
void initQueue(circleQueue &q)
{
q.front=q.rear=0;
q.count=0;
}
void enQueue(circleQueue &q,int e)
{
if(queueFull(q))
exit(0);
q.data[q.rear]=e;
q.rear=(q.rear+1)%MAX;
q.count++;
}
int deQueue(circleQueue &q)
{
if(queueEmpty(q))
exit(0);
int e=q.data[q.front];
q.front=(q.front+1)%MAX;
q.count--;
return e;
}
int getFront(circleQueue q)
{
if(queueEmpty(q))
{
cout<<"empty!";
exit(0);
}
return q.data[q.front];
}
int main()
{
int n;
cin>>n;
circleQueue(Q);
initQueue(Q);
for(int i=1;i<=n;i++)
{
enQueue(Q,i*2-1);
}
cout<<getFront(Q)<<endl;
while(!queueEmpty(Q))
cout<<deQueue(Q)<<' ';
return 0;
}
标签:count,队列,MAX,int,circleQueue,循环,front,基本操作,rear
From: https://blog.csdn.net/2301_81394465/article/details/144691666