C++实现一个简单的环形队列
Posted Jing Sir
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++实现一个简单的环形队列相关的知识,希望对你有一定的参考价值。
如下所示,这是一个简单的环形队列:
class arrayqueue
{
private:
int size;
int front;
int rear;
int *queue;
bool tag;
public:
arrayqueue(int n)
{
size=n;
queue=new int[size];
front=rear=-1;
tag=0;
}
void enqueue(int item)//item插入队尾
{
rear=(rear+1)%size;
if((front==rear)&&(tag==1))
{
cout<<"队列已满,溢出"<<endl;
rear=size-1;
}
else
{
if(front=-1)
front=0;
queue[rear]=item;
tag=1;
}
}
void dequeue(int &item)//返回队伍首元素,并删除
{
if(tag==0&&front==rear)
{
cout<<"队列为空"<<endl;
}
else
{
item=queue[front];
front=(front+1)%size;
if(front==rear)
tag=0;
}
}
void disp()
{
int tmp=front;
if(tag)//队中有元素
{
if(front==rear)//队满
{
while(tmp!=rear)
{
cout<<queue[tmp];
tmp=(tmp+1)%size;
}
cout<<queue[rear]<<endl;
}
while(tmp!=rear)//队不满,但是有元素
{
cout<<queue[tmp];
tmp=(tmp+1)%size;
}
cout<<queue[tmp];
cout<<endl;
}
}
};
以上是关于C++实现一个简单的环形队列的主要内容,如果未能解决你的问题,请参考以下文章