鍊錶 三 雙向鍊錶

2022-07-07 04:24:13 字數 884 閱讀 4219

1.概念

雙向鍊錶(double linked list)的節點有兩個指標,乙個指向直接前驅,乙個指向直接後繼。

2.優點

查詢直接前驅執行時間為o(1),單鏈表為o(n).

3.儲存結構

//雙向鍊錶

typedef struct dulnodedulnode,*dulinklist;

4.簡單例項

#include #include using namespace std;

//雙向鍊錶

typedef struct dulnodedulnode,*dulinklist;

void initlist(dulinklist &l)

void add(dulinklist l,int d)

dulnode *n=new dulnode;

n->data=d;

n->next=null;

n->prior=l;

l->next=n;

}void display(dulinklist l)

}void newlist(dulinklist l)

}int main()

5.執行效果

注 : 最後乙個節點6無直接後繼。

6.補充

類似單鏈的迴圈表,雙向鍊錶也有迴圈表,如下圖

鍊錶 三 雙向鍊錶

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

鍊錶 三 雙向鍊錶

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

鍊錶 05 雙向鍊錶

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