隊列

隊列也是一種存儲方式,頭進尾出。
先給出順序存儲的代碼:
主類

class Queue
{
    int data[Maxsize];
    int front,rear;//頭指針,以及尾指針
    public:
    Queue();
    ~Queue();//順序存儲可以爲空
    void inQueue(int x);//進
    int deletedata();//出
    int getdata();//獲得對列的頭數據
    int getlength();//獲取長度
    bool empty();//判斷是否爲空
};

功能實現代碼

構造函數

Queue::Queue()//這裏的頭尾指針必須從-1開始,隊列從0位置開始
{
    front=-1;
    rear=-1;
}

進隊列

void Queue::inQueue(int x)
{
    if((rear+1)%Maxsize==front)//這是判斷是否滿隊列的關鍵公式
    {
        cout<<"滿了";
    }
    else
    {
        rear=(rear+1)%Maxsize;
        data[rear]=x;
    }
}

出隊列

int Queue::deletedata()
{
    if(front==rear)
    {
        cout<<"爲空";
    }
    else
    {
        front=(front+1)%Maxsize;
        return data[front];
    }
}

獲取頭數據

int Queue::getdata()
{
    if(front==rear)
    {
        cout<<"爲空";
    }
    else
    {
        int i=(front+1)%Maxsize;
        return data[i];
    }
}

獲取長度

int Queue::getlength()
{
    if(rear==front)
    {
        cout<<"爲空";
    }
    else
    {
        return (rear-front+Maxsize)%Maxsize;
    }
}

判斷是否爲空

bool Queue::empty()
{
    if(front==rear)
    {
        cout<<"空";
    }
}

順序存儲就是這些,下次給鏈式存儲。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章