作者converse2006 (宮城)
看板Grad-ProbAsk
標題Re: [理工] [資結]-circular queue
時間Fri Dec 18 00:40:38 2009
※ 引述《polomoss (小澤)》之銘言:
: 請問一下下面這段程式碼
: 可以解釋一下嗎??
: for(;k>0; k--)
: queue((front+k) % MaxSize) = queue[(front+k-1) % MaxSize];
: front = (front+1)%MaxSize;
: x=queue[front];
: return &x;
: 目的是要刪除queue第k項,然後把其他的位置放回原來位址
: 有點看不懂,謝謝
我不會畫圖 希望你能看懂我在說甚麼XD
前兩行是 他把k的那格放k-1的那格資料 所以整個陣列平行向前移動一格
所以第三行是在說 把頭改成現在第一個在的位置 也就是平移過一格的位置
下一行再把頭指給一個變數
最後回傳頭
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.183.45
推 polomoss:可是這樣他回傳是front+1 非 第k項 12/18 10:09
→ polomoss:懂了...謝謝 12/18 10:10