迴圈列表和雙向列表【轉】
阿新 • • 發佈:2018-12-10
本文圍繞以下兩個部分展開: 一、迴圈連結串列(circular linked list) 二、雙向連結串列(double linked list) 一、迴圈連結串列(circular linked list) 1. 概念 將單鏈表中終端結點的指標端由空指標改為指向頭結點,就使整個單鏈表形成一個環,這種頭尾相接的單鏈表稱為單迴圈連結串列,簡稱迴圈連結串列。
2. 與單鏈表比較 (1)單鏈表,每個元素只儲存了向後的指標,到了尾標誌就停止了向後鏈的操作。這樣,當中某一結點就無法找到它的前驅結點。 迴圈連結串列可以從當中一個結點出發,訪問到連結串列的全部結點。 (2)
(1)用頭指標:可以用O(1)的時間訪問開始結點,但訪問終端結點由於需要將連結串列全部掃描一遍,因此需要O(n)的時間。 而用尾指標訪問開始結點和終端結點都用O(1)的時間。 (2)要將兩個迴圈連結串列合併為一個表時,有了尾指標就非常簡單了。
二、雙向連結串列(double linked list) 1. 概念 雙向連結串列是在單鏈表的每個結點中,再設定一個指向其前驅結點的指標域。 2. 雙向連結串列儲存結構
3. 插入
4. 刪除
5. 雙向迴圈連結串列(雙向連結串列帶有迴圈)
整理時重點參考:《大話資料結構》程傑著