雙鏈表及其基本操作

2021-10-19 01:11:04 字數 848 閱讀 9593

單鏈表無法逆向檢索,而雙鏈表可進可退,相比較而言儲存密度更低一些

typedef

struct dnodednode,

*dlinklist;

bool initdlinklist

(dlinklist &l)

//判斷雙鏈表是否為空

bool isempty

(dlinklist l)

void

testdlinklist()

//雙鏈表的插入

bool insertnextdnode

(dnode *p,dnode *s)

//雙鏈表的刪除

bool deletenextdnode

(dnode *p)

//雙鏈表的銷毀

void

destorylist

(dlinklist &l)

free

(l);

//釋放頭結點

l=null

;//頭指標指向null

}

//雙鏈表的遍歷

//後向遍歷

while

(p!=

null

)//前向遍歷

while

(p!=

null

)//前向遍歷(跳過頭結點)

while

(p->prior!=

null

)

注意邊界處理,對於最後乙個結點需要進行特殊處理,對於雙鏈表也需要順序遍歷進行查詢

雙鏈表基本操作

1.在頭接點插入指定的值 template void insertd dnode front,const t value 2.顯示所有接點數值 template void showd dnode front 3.刪除接點 template void deleted dnode lhs 4。刪除指定資...

雙鏈表基本操作

看歐立奇的 程式設計師面試寶典 的雙向鍊錶部分,發現其中建立雙向鍊錶和刪除鍊錶中得某一點的程式存在問題,現將已經除錯通過的程式貼在下面 include using namespace std define len sizeof dnode typedef struct doublenode dnod...

雙鏈表基本操作

include include using namespace std define null 0 define maxsize 50 struct strlnode void create struct strlnode p,int x 建立雙鏈表 表頭節點 void insertnode str...