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数据结构 -- 环形队列 & 数组模拟环形队列