雙向迴圈鍊錶的插入和刪除

2022-05-16 19:56:05 字數 677 閱讀 9160

(a)為刪除,(b)為插入

雙向迴圈鍊錶實則為乙個環狀,因此插入、刪除**對任一位置的節點都適用

**如下

#define ok 1

#define error 0typedef

intstatus;

typedef

struct

dulnode

*dulinkedlist;

dulinkedlist getelemp(dulinkedlist &l,int

i)

return

p; }/*

在雙鏈表第i個位置之前插入節點

*/status insert_dulinkedlist(dulinkedlist &l,int

i,elelmenttype e)

/*在雙鏈表上刪除元素

*/elelmenttype delete_dulist(dulinkedlist &l, int i, elelmenttype &e)

view code

需要注意的是,該雙向迴圈鍊錶預設有乙個頭節點,"第i個位置"是不包含頭節點的,第乙個位置,表示該鍊錶第乙個擁有實際意義的節點

雙向迴圈鍊錶的插入與刪除

關於解釋部分不再多說了,網上資料很多,下面就介紹具體的實現吧 雙向迴圈鍊錶的插入與刪除 typedef struct nodednode,dlinklist 在帶有頭結點雙向迴圈鍊錶中第1個資料域內容為x的結點右邊插入乙個資料資訊為item的新結點 void insert dlinklist lis...

雙向迴圈鍊錶(建立 插入 刪除 遍歷)

author chen ming dong include include typedef struct list str int n str creat str head head prior p p next head return head 遍歷 void gothrough str head...

雙向迴圈鍊錶的刪除

刪除某個結點,其實就是插入某個結點的逆操作。還是對於雙向迴圈鍊錶,要在連續的三個結點s,p,q中刪除p結點,只需把s的右鏈域指標指向q,q的左鏈域指標指向s,並收回p結點就完成了。下面就是乙個應用雙向迴圈鍊錶刪除演算法的例子 include include include define n 10 t...