作者chenbojyh (阿志)
看板Grad-ProbAsk
標題Re: [理工] [資結]-circular queue
時間Fri Sep 18 23:10:31 2009
※ 引述《yesa315 (XD)》之銘言:
: 問一個array q[0..n-1]來表示Circular queue
: front指向第一個元素 rear指向最後一個元素
: 用front及rear來表示元素個數
: 題庫上的解答是 (rear-front) mod n
: 但我覺得很怪 應該是 (rear-front+1) mod n
: if front =1 rear=3
: 則元素個數應該是3-1+1=3 不應是3-1=2
: 是答案錯還是我錯呢..
: [95清大資工]
: 謝謝
如果我沒記錯的話 (我現在身邊找不到書)
一樓大大的是正確的
rear指的是Queue最後一個加入之元素的下一個位址
(也就是空的位置)
以你上面的例子
if front =1 rear=3
在這個Circular Queue只有array[1] array[2]兩個位置有存元素
所以理當是解答對
假如我上課內容沒記錯的話是這樣......
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.227.128.5
推 yesa315:我題目有打喔 front指向第一個元素 rear指向最後一個元素 09/19 00:35
→ yesa315:題目附在我原po的文章中 09/19 00:44
→ yesa315:circular queue有兩種 一種使用到n-1格 一種使用了n格 09/19 00:52
→ yesa315:而n個的演算法 front指向的東西不是空的 09/19 00:52
→ yesa315:當n格都放滿的時候 09/19 00:57