簡體   English   中英

二叉搜索樹 - 刪除

[英]Binary Search Tree - Deletion

關於刪除操作,特別是節點正好有 2 個子樹的情況,我知道選擇找到右子樹的最小元素來“替換”相應的元素是保留排序屬性的方法。

但是為什么不選擇對應元素的左子樹的最大元素呢?

我認為 sorted 屬性不會中斷,也想不出反例。

據我所知,沒有“具體”規則總是選擇右子樹的最小元素。 從對稱性來看,使用左子樹中的最大元素也可以。

從邏輯上講,BST 的中序遍歷會產生排序后的輸出。 考慮以下輸出

....A B C....

這里, AC分別是有序前驅(基本上是B的左子樹的最大元素)和有序的后繼( B的右子樹的最小元素)。 CA替換B不會更改排序順序,因此沒有理由說C是替換B的唯一選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM