(a)為刪除,(b)為插入
雙向迴圈鍊錶實則為乙個環狀,因此插入、刪除**對任一位置的節點都適用
**如下
#define ok 1view code#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)
需要注意的是,該雙向迴圈鍊錶預設有乙個頭節點,"第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...