c語言 鍊錶的刪除

2021-07-26 07:50:33 字數 668 閱讀 7781

我們已經知道了,鍊錶的查詢的原理和做法,現在刪除的基本思想相信你可以很快的反應出

來的,它就是先要想辦法把你要刪的元素從鍊錶上剔除,然後呢讓鍊錶仍然連續,這裡先看

下面的圖。就很容易理解了。

(q是查詢函式的返回值,p是你要查詢的函式,紅色是初始的形態,藍色是執行過後的形態(free(p)是最後一步)

這就大概的實現過程,分為3個階段。

==》 先讓p指向目標節點的前驅結點(如果是第乙個點的話,p=head->next)

==》 然後把q->next的值賦值為p所指向例項的next成員,然後p所指向的成員就被「架空」了。

==》 最後釋放p的空間。

void *delete(point *head)

else

p = pro->next;

pro->next = p->next;

free(p);

showpoints(*head);

showtopic("\n刪除成功!!!!(按任意鍵繼續)");

getch();

} return pro;

}

C語言 鍊錶中刪除節點

錯誤示範 struct node delnode struct node head,int x struct node p head struct node pre null int find 0 while p null pre p pre記錄目標節點的前乙個 p p next if find 0...

C語言學習筆記 鍊錶(四)鍊錶的刪除

鍊錶的節點刪除有兩種情況 一 刪除頭節點 將頭結點變為第二個節點即可。二 刪除非頭節點 將要刪除的節點的前乙個節點指向到要刪除的節點的下乙個節點。定義結構體 struct test 輸出鍊錶資料 void printlink struct test head putchar n struct tes...

c語言 鍊錶 C語言鍊錶例項 玩轉鍊錶

下圖為最一簡單鍊錶的示意圖 第 0 個結點稱為頭結點,它存放有第乙個結點的首位址,它沒有資料,只是乙個指標變數。以下的每個結點都分為兩個域,乙個是資料域,存放各種實際的資料,如學號 num,姓名 name,性別 和成績 score 等。另乙個域為指標域,存放下一結點的首位址。鍊錶中的每乙個結點都是同...