王道5 3 11刪除以x為根的子樹

2021-10-07 22:31:07 字數 661 閱讀 2962

刪除以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和鍊錶節點的值,找到值相同的節點的前乙個就可以刪除這個節點了。然後我們可以考慮兩種辦法第一種就是遞迴的去刪除,這個比較簡單,只需要刪除第乙個值和我們要刪除的值一樣的節點,然後把下...