繁体   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