[理工] 資結 Circular Array問題

作者: st945712 (st945712)   2018-10-29 14:58:41
http://i.imgur.com/gxQJCJ4.jpg
洪逸的資結筆記裏面,
circular Array法三的部分,
請問用鉛筆圈起來的兩個if(front==rear)
如果省略的話會有什麼錯誤嗎?
這個[法三]的缺點是寫 因為多用了這兩個if函式,所以測試時間變成[法二]的兩倍
但是我想很久都想不到如果省略了這兩個if會帶來什麼樣的錯誤,求各位大大解救QQ
下面附上文中所提到的[法二]
http://i.imgur.com/VCTo7Rw.jpg
作者: st945712 (st945712)   2018-10-29 17:12:00
謝謝大大,我一開始還在想說是不是考慮同步問題@@
作者: jasoncph (Ben)   2018-10-29 16:24:00
應該是充分用到n格不然只能用n-1格
作者: jojoboy0115 (jojo)   2018-10-29 16:09:00
我懂你的意思了,如果沒有這個判斷,等於是你每次進來都要把Tag變成True,即使Tag已經是True了,功能雖然沒有影響,這樣就浪費了時間,一般不會這樣寫@@而且如果拿掉判斷,Tag一開始設定的初衷就違背了。沒有滿也設成True,讓人不清楚Tag的功能,大概是這樣。
作者: st945712 (st945712)   2018-10-29 15:48:00
我說的是把if(rear==front)省略, 後面的tag = true照樣留著,就是『只要做enqueue 就把tag設成True』『只要做Dequeue 就把tag設成false』
作者: jojoboy0115 (jojo)   2018-10-29 15:27:00
https://i.imgur.com/2SeS9fX.jpg要是省略,就沒辦法判斷Queue是不是真的滿了,還是你有其他的問題想問?

Links booklink

Contact Us: admin [ a t ] ucptt.com