看板 Grad-ProbAsk 關於我們 聯絡資訊
今天數位課程上到linked list 其中談到了single的回收time complexity O(n) 而circular的是O(1) 我的問題是為什麼single的需要以while把整個要回收的list跑過一次呢? 而circular的只需要三步驟改變位置即可? linked list不是都有指標循序的排列下去嗎? 那為什麼看起來在circular的時候可以整串放回Av裡面 而single的時候沒有辦法只把最後一個node指向Av 然後把Av直接指向串列的First呢? 整理一下我的問題應該就是為什麼single的回收方式 他需要把串列用while串起來? linked list 不是本來就已經把node串好了嗎? 謝謝!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.139.24 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1470383949.A.615.html
ken52011219: 我資結沒有很頂好但可以稍微回答你08/05 16:14
ken52011219: Circular link list 回收與 link list 的長度無關08/05 16:14
ken52011219: circular link list 若要回收任何一條 只要將它前面08/05 16:16
ken52011219: 連結的link 拉回AV就好08/05 16:16
ken52011219: 因為它是個circular 我只要把link 拉回來成一個圓就08/05 16:18
ken52011219: 好了08/05 16:18
ken52011219: 簡單來說 single link list 必須知道它的最末點在08/05 16:57
ken52011219: 哪 才能當做可用串列的尾 而 circular link list 只08/05 16:57
ken52011219: 要找到一個點 當做可用串列的頭 而它後面那個點當做08/05 16:57
ken52011219: 可用串列的尾08/05 16:57
ken52011219: 另外我覺得與其說把link放回AV(可用串列) 在這里比08/05 17:05
ken52011219: 較像要把整條link list 當做AV08/05 17:05
謝謝你!!! 我懂了!!是因為single的並不知道最末端在哪裡,所以必須走到底才能確定,而circul ar沒差嗎? 謝謝你!! ※ 編輯: shortid (61.230.139.24), 08/05/2016 17:18:52
ken52011219: 嗯嗯 沒錯 08/05 17:21
Firstshadow: 哦..詳細推 08/05 18:15
prelude0390: 強者推 08/05 19:30