資料結構 迴圈佇列 C語言

2021-10-03 06:14:54 字數 1620 閱讀 9252

(2) 迴圈佇列源**及測試

佇列,顧名思義就像我們平時排隊打飯一樣,隊尾有人不斷來排隊打飯,隊頭不斷有人打完飯離開隊頭

順序佇列用順序儲存結構,即陣列儲存,分別包含倆個變數front和rear分別代表隊頭和隊尾,為了防止陣列越界溢位,我們將順序佇列變成乙個環狀的空間,即迴圈佇列,超出陣列界隊尾重新回到陣列的開頭,以此防止陣列溢位報錯。

通過取模,我們可以讓順序佇列的儲存空間迴圈使用;假設陣列最大空間為6,當q.front=4,q.rear=5,則佇列長度為1,未達到最大佇列長度,如果我們還需要入隊,此刻隊尾不能再繼續在陣列中新增資料元素了,那麼我們可以使q.rear=(q.rear+1)%6,即q.rear=0,重新回到陣列的初始位址,繼續入隊,於是這就形成了迴圈佇列。

#define maxqsize 100

typedef

struct

sqqueue;

void

initqueue

(sqqueue &q)

void

enqueue

(sqqueue &q,

int e)

}

void

dequeue

(sqqueue &q,

int&e)

}

int

queuelength

(sqqueue q)

int

gethead

(sqqueue q)

int

gettail

(sqqueue q)

#include

#include

#define maxqsize 100

typedef

struct

sqqueue;

void

initqueue

(sqqueue &q)

void

enqueue

(sqqueue &q,

int e)

}void

dequeue

(sqqueue &q,

int&e)

}int

queuelength

(sqqueue q)

intgethead

(sqqueue q)

intgettail

(sqqueue q)

intmain()

測試環境 : windows 10

編譯軟體 : visual c++ 6.0

C語言資料結構之迴圈佇列

include define max 5 typedef struct queue queue initqueue queue q int isfull queue q else int isempty queue q else int insertelement queue q,int eleme...

另類迴圈佇列 資料結構 C語言

如果用乙個迴圈陣列表示佇列,並且只設佇列頭指標front,不設尾指標rear,而是另設count記錄佇列中元素個數。請編寫演算法實現佇列的入隊和出隊操作 bool addq queue q,elementtype x elementtype deleteq queue q 其中queue結構定義如下...

資料結構迴圈佇列(c語言描述)

迴圈佇列也是佇列的順序儲存結構,只是在原先的佇列的基礎上進行的優化,我在寫的時候出現了一些問題,但是我搜尋的部落格中都沒有提到這個問題,首先 front是指向佇列的第乙個元素,rear是指向隊尾的下乙個元素,maxsize是佇列的最大容量 首先我賣個關子,這裡maxsize的描述是錯的 佇列滿條件 ...