雙向迴圈鍊錶的建立、查詢、插入、刪除和遍歷等操作
#ifndef __dlinklist_h__
#define __dlinklist_h__
#include
#include
typedef
int datatype;
typedef
struct double_link_node
dlk,
*dplk;
extern
void
init_dlinklist
(dplk *h)
;extern
void
create_dlinklist
(dplk p)
;extern
void
search_dlinklist
(dplk p,
int pos,dplk *r)
;extern
void
insert_dlinklist
(dplk p,datatype val,
int pos)
;extern
void
delete_dlinklist
(dplk p,
int pos)
;extern
void
show_dlinklist
(dplk p)
;extern
void
clear_dlinklist
(dplk p)
;#endif
#include
"dlinklist.h"
//初始化
void
init_dlinklist
(dplk *h)
(*h)
->prior =
*h;(
*h)->next =
*h;}
//建立雙向迴圈鍊錶
void
create_dlinklist
(dplk p)
q->data = val;
q->prior = r;
q->next = r->next;
r->next = q;
p->prior = q;
r = q;}}
//位置搜尋
void
search_dlinklist
(dplk p,
int pos,dplk *r)
while
(p->next != t)
}*r =
null
;return;}
//位置插入
void
insert_dlinklist
(dplk p,datatype val,
int pos)
q->data = val;
search_dlinklist
(p,pos,
&r);if(
null
== r)
q->next = r;
q->prior = r->prior;
r->prior->next = q;
r->prior = q;
return;}
//位置刪除
void
delete_dlinklist
(dplk p,
int pos)
r->prior->next = r->next;
r->next->prior = r->prior;
free
(r);
}//遍歷
void
show_dlinklist
(dplk p)
puts(""
);}//釋放記憶體
void
clear_dlinklist
(dplk p)
return;}
#include
"dlinklist.h"
intmain
(int argc,
const
char
*ar**)
雙向迴圈鍊錶(建立 插入 刪除 遍歷)
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...
雙向迴圈鍊錶的建立 查詢 新增 刪除
雙向迴圈鍊錶的建立 查詢 新增 刪除 include include typedef struct lnodelnode,dlinklist 尾插法建立雙向鍊錶 dlinklist create dlinklist l,int n return l void menu 獲取雙向迴圈鍊錶中某一元素的值...
雙向迴圈鍊錶的插入與刪除
關於解釋部分不再多說了,網上資料很多,下面就介紹具體的實現吧 雙向迴圈鍊錶的插入與刪除 typedef struct nodednode,dlinklist 在帶有頭結點雙向迴圈鍊錶中第1個資料域內容為x的結點右邊插入乙個資料資訊為item的新結點 void insert dlinklist lis...