佇列2 迴圈佇列

2022-02-23 10:45:07 字數 878 閱讀 1846

我們來看下上次我們寫下的queue

struct queue  //增加乙個

void pop() //彈出第乙個

bool empty() //是否為空

int num() //返回有多少個元素

int gethead() //獲取第乙個元素

};

現在我們增加乙個功能,獲取第i個元素。

int getnum(int x)
好的,開始在裡邊填充東西:

int getnum(int x)
但顯然,如果你的x比較大的話,你會輸出什麼?

那就想個辦法,我們可以給他來個迴圈佇列,也就是說,如果你的x太大了,我們就把他重新歸到head,再來確定元素,就像這樣:

那就開始吧!

int getnum(int x)
但是,如果這個佇列是空的話,head-tail是0的話,會有error,我們再加乙個特判:

int getnum(int x)
如果隊列為空,返回乙個-1。順便咱把gethead()也重寫一下:

int gethead()
好的,迴圈佇列就實現啦~

佇列 迴圈佇列

迴圈佇列是乙個大小確定的特殊佇列,它的特殊體現在迴圈,之前提到的普通佇列,我們是用鍊錶來實現的,在這裡,由於迴圈佇列是乙個長度確定的佇列,所以我們可以拿順序表來實現。迴圈佇列的操作與普通佇列類似,不過不同的地方在於當rear走到capacity 1並且front在0號元素位置的時候,當此時再有元素入...

佇列實現 順序結構2 迴圈佇列

問題解決迴圈佇列來解決.迴圈佇列來解決.使用乙個計數器count,初始化為0,入佇列加一,出佇列減一 當count queue size,則判斷佇列滿 利用乙個flag標記,true代表入佇列,false代表出佇列,初始化為false.當head tail,如果flag為true,則隊伍滿.浪費乙個...

佇列(迴圈佇列 鏈佇列)

迴圈佇列 cirqueue.h 名稱 迴圈佇列 基於陣列 templateclass cirqueue q size 1 多申請乙個位置,保證隊滿 對空容易判定!cirqueue void enter datatype data 入隊操作 datatype shift 出隊操作 datatype g...