假如, 我們在設計一個循環隊列,預先分配一段內存空間使其容量爲capacity。當隊尾指針(可用一個指示序號的整型變量實現,其永遠指向最後一個元素的下一個位置)指向物理空間上的最後一個存儲單元時,此時再插入元素,因爲隊列可能並未真滿,可使尾指針返回來指向物理存儲空間中的第一個單元。
此時,我們可能需要一個判斷:
Q.rear = 0;
問題來了!當該隊列頻繁入隊時(甚至我們可以推測出隊時也需要同樣的判斷)或頻繁出隊時,大規模的判斷會讓效率很低,怎麼辦呢?
此時,我們可以用取模運算:
因爲取模運算是通過硬件實現的,故效率得到了很可觀的提高。
同理,對隊列長度的計算也可用
來代替對頭尾指針位置先後的判斷。