[理工] 资料结构 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