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++实现一个简单的环形队列的主要内容,如果未能解决你的问题,请参考以下文章

C++ 笔记 —— 实现一个环形阻塞队列

C++ 笔记 —— 实现一个环形阻塞队列

C++ 笔记 —— 实现一个环形阻塞队列

节点大小可变的环形队列实现

Java数据结构 -- 环形队列 & 数组模拟环形队列

4环形队列的实现(C语言)