刪除以x為根節點的所有子樹,注意可能有多個為x值
先遞迴刪除所有節點
可能有多個值是x,所以用層序找出他們的父節點,然後刪除x,同時設定父節點的子節點為空
/*
* 刪除每個以x為值的子樹(可能有多個,父節點智慧型用層序找到)
* 1.遞迴刪除節點
* 2.層序找到後呼叫1
*/void
del(treenode* root)
del(root-
>left)
;del
(root-
>right)
;free
(root)
;//釋放節點
}void
searchdel
(treenode *root,
int x)
if(root-
>val==x)
// 層序遍歷找父親
queue> queue1;
queue1.
push
(root)
;while
(!queue1.
empty()
)else}if
(cur-
>right)
else}}
}
王道課後習題2 2 3 順序表刪除值為x的元素
題目描述 長度為n的順序表l,編寫乙個時間複雜度為o n 空間複雜度為o 1 的演算法,該演算法刪除線性表中所有值為x的資料元素。演算法思想 解法1.查詢到乙個元素值等於x的時候就覆蓋掉它,從前往後開始移動元素 解法2.一趟迴圈。重新往線性表裡填元素。如果當前元素不等於x,就往線性表裡填入這個元素後...
專案一 刪除結點值為X的結點
問題及 檔名稱 words.cpp 作 者 尚 月 完成日期 2015年02月08日 版 本 號 v1.0 問題描述 編寫函式,刪除鍊錶中有值為x的結點。程式輸入 若干正數 以0或乙個負數結束 建立鍊錶。程式輸出 輸出刪除後的鍊錶 include using namespace std struct...
刪除單鏈表中所有值為x的元素
刪除所有值為x的單鏈表中的元素 首先,我們先考慮第一種情況,就是說值刪除第乙個值為x的元素,這個比較簡單,只需要挨個比較x和鍊錶節點的值,找到值相同的節點的前乙個就可以刪除這個節點了。然後我們可以考慮兩種辦法第一種就是遞迴的去刪除,這個比較簡單,只需要刪除第乙個值和我們要刪除的值一樣的節點,然後把下...