鍊錶家族(2) 雙向鍊錶

2021-07-10 13:41:06 字數 538 閱讀 4002

前面實現了乙個單鏈表,現在我們再來做乙個雙向鍊錶吧!

(附上單鏈表描述:

和單鏈表差別非常小,只是多了乙個指標指向前乙個元素。

這樣就更像我們生活中的鏈條了。

typedef

struct lnode

lnode,*linklist; //lnode是型別名,linklist是指向lnode型別的指標

特別說一下插入和刪除

具體的我就不解釋了,按照圖示理解吧。

int listinsert_l(linklist &t, lnode e)

int listdelete_l(linklist p)

無非是兩個指標的初始化。

和單鏈表的銷毀並沒有什麼區別。

雙向鍊錶實際上難度並不大,而且更具有靈活性。

鍊錶 三 雙向鍊錶

前兩篇部落格中介紹的鏈式儲存結構中只有乙個指示直接後繼的指標域。因此,從單鏈表中的某個結點出發,之能向後遍歷每個結點,所尋找這個結點的直接前驅只能向用頭結點出。而若在每個結點的指標域中再加入乙個指向當前結點直接前驅的指標,就可以克服以上問題。雙向鍊錶,帶頭節點,頭的前驅為null,尾的後繼為null...

鍊錶 05 雙向鍊錶

main.cpp include include doublelinkedlist.h using namespace std int main 雙向鍊錶類 class doublelinkedlist void insert doublelinkednode doublelinkednode 新節...

鍊錶 三 雙向鍊錶

1.概念 雙向鍊錶 double linked list 的節點有兩個指標,乙個指向直接前驅,乙個指向直接後繼。2.優點 查詢直接前驅執行時間為o 1 單鏈表為o n 3.儲存結構 雙向鍊錶 typedef struct dulnodedulnode,dulinklist 4.簡單例項 includ...