首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在二进制SubTree中删除

在二进制SubTree中删除
EN

Stack Overflow用户
提问于 2012-11-01 15:36:04
回答 2查看 54关注 0票数 0

我正在尝试删除一个节点,该节点在本例中有一个左子节点和一个右子节点。

代码语言:javascript
复制
                 D
                /  \ 
               A    F 
                \
                 B

所以当我尝试删除D时,我应该用B替换它,因为B是左子树中下一个最大的元素。所以我可以用F代替它而不是B?

EN

回答 2

Stack Overflow用户

发布于 2012-11-01 15:45:21

你可以,但它不会是最优的。您希望您的树总是尽可能平衡,以便插入和删除操作保持在O(log )附近。

票数 0
EN

Stack Overflow用户

发布于 2012-11-01 15:46:50

首先,只有一个二叉树是未排序的。我假设你的树是一个二进制搜索树。如果您想要的只是保持树的排序,那么对于这个特定的示例,您可以将其替换为F。如果你的树更复杂,你将无法在没有额外操作的情况下做到这一点-例如,你需要对F的孩子做一些事情,如果有的话,这将需要额外的不必要的处理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13172845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档