關于洗掉操作,特別是節點正好有2 個子樹的情況,我知道選擇找到右子樹的最小元素來“替換”相應元素是保留排序屬性的方法。
但是為什么不選擇對應元素的左子樹的最大元素呢?
我認為 sorted 屬性不會中斷,也想不出反例。
uj5u.com熱心網友回復:
據我所知,沒有“具體”規則總是選擇右子樹的最小元素。從對稱性來看,使用左子樹中的最大元素也可以。
從邏輯上講,BST 的中序遍歷會產生排序后的輸出。考慮以下輸出
....A B C....
在這里,A和C分別是中序前驅(基本上是 的左子樹中的最大元素B)和中序后繼者( 的右子樹中的最小元素B)。替換B為CorA不會更改排序順序,因此沒有理由說這C是替換的唯一選項B。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/488998.html
