Link List種類
1.Single Link List
—>回收整個串列O(n)
—>一個一個node掃描,掃描到最後的node後將其指向AV,並把AV改到s的前端
2.Circular Link List
—>只要利用一個指標即可表示尾端與前端(Rear為尾端、Rear.link為前端)
—>回收整個串列:O(1)
—>設待回收串列的頭為c
I.P另為c.link
II.c.link = AV
III.AV = P
3.Double Link List
—>Data Structure
Link | Data | RLink |
---|---|---|
—>一般使用時,可加入一個Head Node串列首,形成兩個Circular Link List
—>Insert與Delete Node
—>Insert:先將新node的左右連結好、再將舊node與新連結連接
—>Inverse
—>p, q, r意義:用三個指標,所以可以循序將每個node的link都往前一個node指,而又有p, q, r指標所以可以繼續p—>當q
node的link改指到r時,可用p來只原本舊的p—>link
—>Delete:直接把x的左右點的連結互相連接,再Ret(t)
—>比較
Single | Double |
---|---|
只能知道前一個(或後一個)所在 | 可立即取出前、後node |
刪除某點時,須給予前一個node位置 | 無須 |
可靠度差 | 可靠度較好 |
必須從頭開始才能經所有node | 任一點皆可 |
Insert/Delete簡單(改2/1) | 較麻煩(改4/2) |
link空間少 | 空間多 |