隊頭指標在隊尾指標的下一位置時,隊滿。q.front == (q.rear + 1) % maxsize 因為隊頭指標可能又重新從0位置開始,而此時隊尾指標是maxsize - 1,所以需要求餘。
當隊頭和隊尾指標在同一位置時,隊空。q.front == q.rear;
1 #include 2 #include3#define maxsize 100 //
最大佇列長度
4#define ok 1
5#define error 0
6 typedef int
elemtype;
7 typedef int
status;
89 typedef struct
sqqueue;
1415
//初始化迴圈佇列
16 status initqueue(sqqueue &q)
2122
//入隊
23 status enqueue(sqqueue &q, elemtype e)
2930
//出隊
31 status dequeue(sqqueue &q, elemtype &e)
3738
//返回佇列長度
39 status length(sqqueue &q)
42————————————————
blog.csdn.net/u010429311/article/details/51043149
迴圈佇列隊滿和隊空判定
假設迴圈佇列的隊尾指標是rear,隊頭是front,其中queuesize為迴圈佇列的最大長度。1 入隊時隊尾指標前進1 rear 1 queuesize 2 出隊時隊頭指標前進1 front 1 queuesize 例1,例2 3 佇列長度 rear front queuesize queuesi...
C 實現迴圈順序佇列(佇列)
佇列同棧相對,前者為先進先出 first in first in 順序隊裡中,使用陣列儲存資料,基本原理同順序線性表和順序棧。由於使用陣列,所以必須事先定義陣列的最大容量maxsize,使用front表示隊頭位置 最先入元素 使用rear表示隊尾元素 最後入元素 這樣每進入乙個元素,rear要自加一...
迴圈佇列判斷滿與空
何時隊列為空?何時為滿?由於入隊時尾指標向前追趕頭指標,出隊時頭指標向前追趕尾指標,故隊空和隊滿時頭尾指標均相等。因此,我們無法通過front rear 來判斷佇列 空 還是 滿 注 先進入的為 頭 後進入的為 尾 解決此問題的方法至少有三種 其一是另設乙個布林變數以匹別佇列的空和滿 其二是少用乙個...