帶表頭結點的單鏈表的基本操作

2021-09-13 11:19:25 字數 1151 閱讀 1787

已知l 是帶表頭結點的非空單鏈表,且p結點既不是首元結點,也不是尾元結點

1.刪除p結點的直接後繼結點

思路:先用工作結點儲存p結點的直接後繼,然後將p結點的指標域指向p結點的直接後繼節點的直接後繼節點,然後再刪除該工作結點。

2.刪除p節點的直接前驅結點(有毛病)

思路:用工作結點儲存p結點,然後將表頭結點賦給p結點,進行遍歷,找到初始時p結點的直接前驅結點的直接前驅結點,即為此時的p結點,再將該p結點的指標域指向其直接後繼結點的直接後繼結點,即指向初始時的p結點

q = p;

p = l;

while (p->next->next != q) {

p = p->next;

p->next = p->next->next;

free(q);

3.刪除p結點(有毛病)

q = p;

p = l;

while (p->next != q) {

p = p->next;

p->next = p->next->next;

free(q);

4.刪除首元結點

5.刪除尾元結點

while(p->next->next != null) {//找到尾元結點的直接前驅結點

p = p->next;

//p結點即為尾元結點的直接前驅,q結點即為尾元結點

q  = p->next;

p->next = p->next->next;//尾元結點的指標域實際是指向空

free(q);

帶表頭結點的單鏈表 的插入 刪除 排序

include include include struct node 結構體定義值域和指標域 typedef struct node node typedef struct node link void is malloc ok link new node 判斷分配空間是否成功 void crea...

單鏈表(表頭結點)

include include define ok 0 define error 1 define malloc error 2 typedef int elementtype c語言中沒有elementtype這個資料型別,講資料結構時,用這個來泛指某一種資料型別 typedef struct n...

帶頭結點單鏈表的基本操作

單鏈表 include includetypedef int elemtype typedef struct lnodelnode,linklist bool initlist linklist l 初始化單鏈表 linklist head insertlist linklist l 頭插法建立單鏈...