1,迴圈鍊錶的初始化
定義乙個頭結點和尾指標的方式,頭結點在這裡是用來連線 第乙個結點和最後乙個結點的結點
1 #include2 #include34 typedef struct
link link;
89 link* head_node; //
宣告乙個頭結點
10 link* ptail; //
宣告乙個尾指標
1112 link* initlink() //
初始化迴圈鍊錶
1329
//printf("頭結點中的資料是:%d\n", head_node->data);
//-842150451,頭結點中沒有值,頭結點只是連線第乙個結點和尾結點的結點
30return
head_node;31}
32void showlink(link* headnode) //
輸出迴圈鍊錶的所有元素
2,刪除指定位置處的結點
4 #include5 #include63,查詢指定位置處的結點的下乙個結點7 typedef struct
link link;
1112 link* head_node; //
宣告乙個頭結點
13 link* ptail; //
宣告乙個尾指標
1415 link* initlink() //
初始化迴圈鍊錶
1632
//printf("頭結點中的資料是:%d\n", head_node->data);
//-842150451,頭結點中沒有值,頭結點只是連線第乙個結點和尾結點的結點
33return
head_node;34}
3536
37void showlink(link* headnode) //
輸出迴圈鍊錶的所有元素
3844 printf("\n"
);45}46
4748
49//
刪除位置num處的節點
50 void delnode(link* headnode, int
num)
5160
if (num<1 || num>j) //
刪除的結點是大於等於1,小於等於表長
6165
66 p = headnode; //
p重新指向頭結點
67 link*r;
68for (j = 1; j < num; j++) //
j=num時會結束for迴圈,此時p指向了第num-1個結點
71 q = p->next;//
q是第num個結點,是p的下乙個結點
72 r =q;
73 p->next = r->next; //
刪除q結點後,通過 r 把鍊錶再接回去
74free(q);
7576}77
7879
80void
main()
81
#include#includetypedef
struct
link link;
link* head_node; //
宣告乙個頭結點
link* ptail; //
宣告乙個尾指標
link* initlink() //
初始化迴圈鍊錶
//printf("頭結點中的資料是:%d\n", head_node->data);
//-842150451,頭結點中沒有值,頭結點只是連線第乙個結點和尾結點的結點
return
head_node;
}void showlink(link* headnode) //
輸出迴圈鍊錶的所有元素
printf("\n
");}//
根據資料返回該處的結點
4,刪除指定位置處的前驅結點
將 上面刪除指定位置結點的方法 改用一些即可
#include#includetypedef
struct
link link;
link* head_node; //
宣告乙個頭結點
link* ptail; //
宣告乙個尾指標
link* initlink() //
初始化迴圈鍊錶
//printf("頭結點中的資料是:%d\n", head_node->data);
//-842150451,頭結點中沒有值,頭結點只是連線第乙個結點和尾結點的結點
return
head_node;
}void showlink(link* headnode) //
輸出迴圈鍊錶的所有元素
printf("\n
");}//
刪除指定結點處的的前驅結點
void delprior(link* headnode, int
num)
if (num<2 || num>j+1) //
刪除的結點是大於等於1,小於等於表長
p = headnode; //
p重新指向頭結點
link*r;
for (j = 1; j < num-1; j++)
//j=num時會結束for迴圈,此時p指向了第num-1個結點
q = p->next;//
q是第num個結點,是p的下乙個結點
r =q;
p->next = r->next; //
刪除q結點後,通過 r 把鍊錶再接回去
18 迴圈鍊錶
在迴圈鍊錶中,表中最後乙個節點的指標域不再為空,而是指向煉表頭節點,整個鍊錶形成乙個環。帶頭節點的迴圈單鏈表和迴圈雙鏈表 圖1 迴圈鍊錶 迴圈單鏈表 尾節點的next指標域不再為空,而是指向了頭結點。迴圈雙鏈表 尾節點的next指標域同樣不再為空,而是指向了頭結點。另外,頭結點的prior指標不再為...
迴圈鍊錶,雙向鍊錶
迴圈鍊錶 迴圈鍊錶與順序鍊錶之間的區別 迴圈鍊錶最後乙個資料的next指標域不為空,而是指向頭結點,其他基本操作大體相同,只是在判斷表結束的條件變為判斷節點的引用域是否為頭引用 雙向鍊錶 author neosong date oct 10,2017 4 43 01 pm program of in...
鍊錶之迴圈鍊錶
單向鍊錶 鍊錶之單向鍊錶 迴圈鍊錶是單向鍊錶的變化形式。單向鍊錶的尾部的指標域是空的,而迴圈鍊錶的尾部指標是指向鍊錶的頭結點的,其結構如圖一所示。圖 一循 環鏈表結 構圖一 迴圈鍊錶結構 圖一迴圈鍊錶 結構從上面結構可以看出,迴圈鍊錶的節點形成了乙個圈。在進行遍歷時,可以從任意節點開始。如果記錄了尾...