題目:將隊列存儲在下標范圍0到(maxqueue-1)的數組中,隊列滿時數組留有一個空位,試寫出Queue類的定義,并給出隊空和隊滿的條件。 答案: 隊空條件為(rear+1)%maxqueue=front 隊滿條件為(rear+2)%maxqueue=front 為什么這么判斷,不太理解啊,求助大神。
1 回答

慕妹3242003
TA貢獻1824條經驗 獲得超6個贊
用到取模運算,可知這是循環隊列,題目沒有說明是循環隊列,不夠嚴謹。
(1)隊列空的條件是rear==front,出隊列時front
=
(front+1)%maxqueue,如果此時隊列中只有一個元素,則front指向的就與rear的相等,下次出隊列時要先判定是否為空,就是根據條件rear==front
(2)隊列滿時條件判定為(rear+1)%maxqueue
==
front,因為每次入隊列后,rear都會向前移動一格,即rear指向的空位其值是不放數據的。
添加回答
舉報
0/150
提交
取消