[英]Binary Search Tree - Deletion
關於刪除操作,特別是節點正好有 2 個子樹的情況,我知道選擇找到右子樹的最小元素來“替換”相應的元素是保留排序屬性的方法。
但是為什么不選擇對應元素的左子樹的最大元素呢?
我認為 sorted 屬性不會中斷,也想不出反例。
據我所知,沒有“具體”規則總是選擇右子樹的最小元素。 從對稱性來看,使用左子樹中的最大元素也可以。
從邏輯上講,BST 的中序遍歷會產生排序后的輸出。 考慮以下輸出
....A B C....
這里, A
和C
分別是有序前驅(基本上是B
的左子樹的最大元素)和有序的后繼( B
的右子樹的最小元素)。 用C
或A
替換B
不會更改排序順序,因此沒有理由說C
是替換B
的唯一選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.