0
也就是說,返回樹中是否實際刪除元素的布爾值。有沒有辦法在一次遍歷中返回BST刪除的布爾成功?
常見的實現是調用find()以查看元素是否在樹中,如果find()找不到目標,則返回false。這需要向下兩次:find()和remove()。
一種方法是設置私人字段標誌,您將在remove()期間查找元素時設置該標誌。似乎還挺粗。任何人有更好的想法?
也就是說,返回樹中是否實際刪除元素的布爾值。有沒有辦法在一次遍歷中返回BST刪除的布爾成功?
常見的實現是調用find()以查看元素是否在樹中,如果find()找不到目標,則返回false。這需要向下兩次:find()和remove()。
一種方法是設置私人字段標誌,您將在remove()期間查找元素時設置該標誌。似乎還挺粗。任何人有更好的想法?
您可以在一次遍歷中刪除BST中的元素。在去除過程中找到元素不需要單獨遍歷。要在首次遍歷中刪除BST中的元素,請執行以下步驟:
要清楚的認識是指enter link description here
也許你誤解了這個問題?您無法通過調用void函數來知道元素是否從您的樹中移除。 – user3724404
爲什麼你要搜索的兩倍?找到它,如果它在那裏刪除它並返回true,否則返回false。 – Blorgbeard
BST刪除是遞歸的。如何在返回一個節點(設置新子樹的根)的同時返回true? – user3724404
實施細節。你在談論特定的代碼嗎?也許你應該發佈它。 – Blorgbeard