雙向帶頭鍊錶的增刪查改
雙向鍊錶也叫雙鏈表,是鍊錶的一種,它的每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。所以,從雙向鍊錶中的任意乙個結點開始,都可以很方便地訪問它的前驅結點和後繼結點。一般我們都構造雙向迴圈鍊錶。
#define _crt_secure_no_warnings 1
#include
#include
#include
typedef
int datatype;
//雙向鍊錶的建立
typedef
struct listnode
listnode;
//節點的擴容
listnode*
listcreate
(datatype x)
//頭節點的建立(頭節點不儲存有效資料,為哨兵位節點)
listnode*
listinit()
//鍊錶銷毀
void
listdestory
(listnode* phead)
phead->next = phead;
phead->prev = phead;
}//鍊錶列印
void
listprint
(listnode* phead)
printf
("head");
printf
("\n");
}//尾插
void
listpushback
(listnode* phead, datatype x)
//尾刪
void
listpopback
(listnode* phead)
//頭插
void
listpushfront
(listnode* phead, datatype x)
//頭刪
void
listpopfront
(listnode* phead)
//中間插入
void
listinsert
(listnode* pos, datatype x)
//中間刪除
void
listerase
(listnode* pos)
void
test1()
intmain()
執行截圖如下
(兩個head實為乙個節點,為形象表示特地加上去的)
資料結構 實現帶頭雙向迴圈鍊錶增刪查改
初始化 listnode listinit clear鍊錶 void listclear listnode phead 摧毀鍊錶 void listdestroy listnode pphead 動態申請乙個節點 並返回指標 listnode buylistnode ltdatatype x 列印 ...
C語言 雙向帶頭迴圈鍊錶的增刪查改及優缺點
二 雙向帶頭迴圈鍊錶優缺點 鍊錶的結構有很多種,其中用的比較多的就是單向不帶頭不迴圈鍊錶和雙向帶頭迴圈鍊錶,這兩種鍊錶都有各自應用的場合。雙向帶頭迴圈鍊錶結構最複雜,一般用在單獨儲存資料。實際中使用的鍊錶資料結構,都是帶頭雙向迴圈鍊錶。今天就用c語言來實現一下帶頭雙向鍊錶的增刪查改。首先 來看一下雙...
鍊錶的增刪查改
include include typedef struct student stu,pstu void list head insert pstu pphead,stu pptail,int i 鍊錶為空,頭尾指標都指向新節點 else 新節點 pnext指向原本頭節點,新節點作為頭節點 void...