[理工] 資料結構 linked list 回收

作者: shortid (我是短哀低)   2016-08-05 15:59:06
今天數位課程上到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串好了嗎?
謝謝!!!
作者: ken52011219 (呱)   2016-08-05 16:14:00
我資結沒有很頂好但可以稍微回答你Circular link list 回收與 link list 的長度無關circular link list 若要回收任何一條 只要將它前面連結的link 拉回AV就好因為它是個circular 我只要把link 拉回來成一個圓就好了簡單來說 single link list 必須知道它的最末點在哪 才能當做可用串列的尾 而 circular link list 只要找到一個點 當做可用串列的頭 而它後面那個點當做可用串列的尾另外我覺得與其說把link放回AV(可用串列) 在這里比較像要把整條link list 當做AV嗯嗯 沒錯
作者: Firstshadow (IamCatづミ'_'ミづ)   2016-08-05 18:15:00
哦..詳細推
作者: prelude0390 (predkll)   2016-08-05 19:30:00
強者推

Links booklink

Contact Us: admin [ a t ] ucptt.com