9 5 單鏈表的演算法之刪除節點

2021-10-25 02:18:21 字數 526 閱讀 6788

(1)一直在強調,鍊錶到底用來幹嘛的?

(2)有時候鍊錶節點中的資料不想要了,因此要刪掉這個節點。

(1)第一步:找到要刪除的節點;第二步:刪除這個節點;

(1)通過遍歷來查詢節點。從頭指標+頭節點開始,順著鍊錶依次將各個節點拿出來,按照一定的方法比對,找到我們要刪除的那個節點。

(1)待刪除的節點不是尾節點的情況:首先把待刪除的節點的前乙個節點的pnext指標指向待刪除的節點的後乙個節點的首位址(這樣就把這個節點從鍊錶中摘出來了),然後再將這個摘出來的節點free掉即可。

(2)待刪除的節點是尾節點的情況:首先把待刪除的尾節點的前乙個節點的pnext指標指向null(這時候就相當於原來尾節點前面的乙個節點變成了新的尾節點),然後將摘出來的節點free掉。

(1)前面幾節課我們寫的**最終都沒有釋放堆記憶體。當程式都結束了的情況下那些沒有free的堆記憶體也被釋放了。

(2)有時候我們的程式執行時間很久,這時候malloc的記憶體如果沒有free會一直被占用直到你free釋放它或者整個程式終止。

單鏈表刪除節點

給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。返回刪除後的鍊錶的頭節點。思路 刪除某個結點需要找到該結點的前乙個結點,由於單向鍊錶沒有指向前乙個結點的指標,所以不得不從頭指標開始遍歷鍊錶。顯然時間複雜度為o n 1 待刪除的節點不是尾節點的情況 首先把待刪除的節點的前乙個節點的...

單鏈表刪除重複節點

學後一年重看資料結構,確實難啊,搞了半天才搞明白這個小問題。include include include typedef char elemtype typedef struct node 結點型別定義 node,linklist linklist為結構指標型別 void createfromta...

刪除單鏈表中指定的節點

include stdafx.h include include include using namespace std struct node 建立單鏈表 node createsinglelist int arr,int n return head 輸出單鏈表 void print node h...