#include <iostream>
using namespace std;
const int MAXSIZE=20; //设置队列最大尺寸
struct Squeue //队列基本格式
{
int data[20];
int front;
int rear;
};
void InitQueue(Squeue *t) //队列初始化
{
t->front=0;
t->rear=0;
}
int QueueLength(Squeue *t) //队列实际大小计算
{
return (t->rear-t->front+MAXSIZE)%MAXSIZE;
}
void EnQueue(Squeue *t) //入队操作;只需要判断队列是否为队满状态即可
{
if((t->rear+1)%MAXSIZE==t->front)
return ;
else
{
cout<<"请输入你将要入队的元素:"<<endl;
cin>>t->data[t->rear];
t->rear=(t->rear+1)%MAXSIZE;
}
}
void DeQueue(Squeue *t) //出队,需要判断队列是否为空,因为为空便不可进行出队操作了。
{
if(t->rear==t->front)
return;
else
{
cout<<t->data[t->front]<<endl;
t->front=(t->front+1)%MAXSIZE; //取余的运算实际上是在看该结果属于哪个集合的哪个部分
cout<<t->front<<endl;
cout<<t->rear<<endl;
}
}
int main()
{
Squeue A;
Squeue *p=&A;
InitQueue(p);
int a=QueueLength(p);
cout<<"队列长度为:"<<a<<endl;
EnQueue(p);
a=QueueLength(p);
cout<<"队列长度为:"<<a<<endl;
DeQueue(p);
return 0;
}