順序迴圈佇列資料的個數

2021-09-13 13:18:11 字數 889 閱讀 9964

順序迴圈佇列資料的個數,一開始我也不懂!!!!原來如此

老師在上面黑板寫了乙個「(rear+queue+front)%queue」,我一看為什麼要取模,我一臉不知所措。

於是,老師在課堂上叫我們自己自行下去學習迴圈佇列資料裡面儲存的個數。

自己也下去查了一下迴圈佇列的資料儲存個數,很多大神也分享了自己的見解,可是我看懂了一點,不過還是沒懂為什麼取模。

對於渣渣的我,我不知道,後來仔細想了以下確實要取模。

下面獻醜了,這是對於迴圈佇列個數的一些理解:

**rear尾指標;front頭指標;queue陣列長度(佇列先進先出)**

說明:為什麼rear在空格後面?

當rear=front時,佇列可能表示空,也可能表示滿,於是為了區分隊空或滿,於是rear=front-1。

情況一(圖1佇列元素不多時):rear—front

情況二(圖2佇列元素過多時,指標需要迴圈以防止假溢位):rear+(queue-front)

為了可以統一使用公式,於是產生了(rear—front+queue)%queue**。**

說明:為什麼要取模?

**兄弟,我們都知道,佇列裡面的元素都是不可能超過queue的,所以怎麼取模,它的商永遠是0,而餘數永遠是它自己。**

小弟是趁熱打鐵寫的,有什麼錯誤歡迎大神指出!(360度鞠躬)

迴圈佇列 順序佇列

在前兩篇中講述了順序佇列中的隊頭移動與不移動兩種順序佇列,今天討論順序佇列中的迴圈佇列,這種迴圈佇列是用一維陣列實現的。在隊頭移動的情況下,根據元素個數與佇列容量之間的數量關係來解決假溢位問題。從上圖中我們可以理解為什麼這種佇列結構可以解決假溢位問題,但是隨之而來,我們要如何判定迴圈佇列已滿呢?在此...

佇列 順序迴圈佇列

順序佇列 sequence queue 用一片連續的儲存空間來儲存佇列中的資料元素.用一維陣列來存放順序佇列中的資料元素。隊頭位置設在陣列下標為 0 的端,用 front 表示 隊尾位置設在陣列的另一端,用 rear 表示。front 和 rear 隨著插入和刪除而變化。當隊列為空時,front r...

迴圈佇列(順序佇列)的實現

迴圈佇列 順序佇列 的實現 include include include include define n 6 定義資料型別 typedef int datatype t 定義結構體 typedef structsequeue t sequeue t sq 建立乙個空的佇列 sequeue t s...