雙鏈表和迴圈鍊錶小結

2022-05-18 02:17:29 字數 958 閱讀 7108

特點:方便查詢乙個節點的前,後相鄰節點

(1)已知某個節點的位址,刪除他的時間o(1)

修改p節點前驅節點的next指標和p節點後繼節點是prior指標

p->prior->next = p->next;

p->next->prior = p->prior;

(2)在某個節點的前後插入乙個節點的時間為o(1)

2.迴圈鍊錶

1.迴圈單鏈表:構成乙個環(可以迴圈查詢)

2.迴圈雙鏈表:構成兩個環(可以迴圈查詢,可以通過頭節點快速找到尾節點)

刪除尾節點,在尾節點前後插入乙個節點的時間均為0(1)

3.有序表

題目如下:假設乙個有序表的採用順序表儲存,設計乙個高效演算法刪除重複的元素

列如:l=(1,1,1,2,2,2,3,3,3)------>l=(1,2,3)

利用刪除所有值為x的元素的演算法思路:

void deleupnode1(sqlist *&l)

l->length = k; //順序表l的長度等於k

//兩個單鏈表中求解公共元素

void intersect(linklist ha,linklist hb,linklist &hc)

}r->next = null;

}

迴圈鍊錶和雙鏈表

1 假設在長度大於1的單迴圈鍊錶中,既無頭結點也無頭指標。s為指向某個結點的指標,試編寫演算法刪除結點 s的直接前驅結點。2 已知由單鏈表表示的線性表中,含有三類字元的資料元素 如 字母 數字和其它字元 設計演算法構造三個以迴圈鏈表示的線性表,使每乙個表中只含同一類的字元,且利用原表中的結點空間作為...

雙鏈表 迴圈鍊錶

一 雙鏈表 對於雙鏈表,採用類似於單鏈表的型別定義,其dlinklist型別的定義如下 typedef struct dnode 宣告雙鏈表節點型別 dlinklist 1.建立雙聯表 1 頭插法 void createlistf dlinklist l,elemtype a,int n 頭插法建立...

迴圈鍊錶 迴圈雙鏈表 迴圈單鏈表

迴圈單 雙鏈表,建立 初始化 尾插 頭插 遍歷 插入 刪除 判空 部分函式採用過載 此處為c include include include using namespace std typedef struct lnodelnode,linklist typedef struct dnodednod...