(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的描述是錯的 佇列滿條件 ...