[理工] 資結 Circular Array問題

看板Grad-ProbAsk作者 (st945712)時間7年前 (2018/10/29 14:58), 編輯推噓2(2011)
留言13則, 3人參與, 7年前最新討論串1/1
http://i.imgur.com/gxQJCJ4.jpg
洪逸的資結筆記裏面, circular Array法三的部分, 請問用鉛筆圈起來的兩個if(front==rear) 如果省略的話會有什麼錯誤嗎? 這個[法三]的缺點是寫 因為多用了這兩個if函式,所以測試時間變成[法二]的兩倍 但是我想很久都想不到如果省略了這兩個if會帶來什麼樣的錯誤,求各位大大解救QQ 下面附上文中所提到的[法二] http://i.imgur.com/VCTo7Rw.jpg
----- Sent from JPTT on my Samsung SM-G950F. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.200.198 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1540796323.A.06E.html

10/29 15:27, 7年前 , 1F

10/29 15:28, 7年前 , 2F
要是省略,就沒辦法判斷Queue是不是真的滿了,還是你
10/29 15:28, 2F

10/29 15:28, 7年前 , 3F
有其他的問題想問?
10/29 15:28, 3F

10/29 15:48, 7年前 , 4F
我說的是把if(rear==front)省略, 後面的tag = true照
10/29 15:48, 4F

10/29 15:48, 7年前 , 5F
樣留著,就是『只要做enqueue 就把tag設成True』
10/29 15:48, 5F

10/29 15:48, 7年前 , 6F
『只要做Dequeue 就把tag設成false』
10/29 15:48, 6F

10/29 16:09, 7年前 , 7F
我懂你的意思了,如果沒有這個判斷,等於是你每次進
10/29 16:09, 7F

10/29 16:09, 7年前 , 8F
來都要把Tag變成True,即使Tag已經是True了,功能雖
10/29 16:09, 8F

10/29 16:09, 7年前 , 9F
然沒有影響,這樣就浪費了時間,一般不會這樣寫@@
10/29 16:09, 9F

10/29 16:20, 7年前 , 10F
而且如果拿掉判斷,Tag一開始設定的初衷就違背了。沒
10/29 16:20, 10F

10/29 16:20, 7年前 , 11F
有滿也設成True,讓人不清楚Tag的功能,大概是這樣。
10/29 16:20, 11F

10/29 16:24, 7年前 , 12F
應該是充分用到n格不然只能用n-1格
10/29 16:24, 12F

10/29 17:12, 7年前 , 13F
謝謝大大,我一開始還在想說是不是考慮同步問題@@
10/29 17:12, 13F
文章代碼(AID): #1Rrg-Z1k (Grad-ProbAsk)