正如标题中提到的,二叉搜索树中最左边的节点总是包含最小值?在搜索路径中,比如说A是最左边的节点,B是父节点,C是最右边的节点。有没有任何例子,订单a < = b < = c并不总是这样?我知道可以进行轮换以确保平衡性能得以维持,但是我不能拿出一个例子,其中事物并不总是平衡的,以至于不总是如此。我只是在学习这个数据结构,与数组和列表相比,它绝对不同于我。是的,这是一个给我的练习。我只想要一些提示/想法!二叉搜索树 - 最左边的节点总是包含最小值?
0
A
回答
1
您的问题的直接答案是“是的”,但是应该限定这是基于假设您正在通常在数据结构类中教授的方式构建树。
我的意思是,如果您确实根据问题的值是否小于或大于当前节点来确定是向左还是向右插入节点,那么答案是肯定的。显然,如果您使用其他标准来做出决定,那么这可能会改变。 :)由于这种策略,你可以保证没有比左边路径下的父节点更大的值。
这实际上是二叉树的巨大力量进来的地方。然而,它的含义是,如果插入的数据分布不均匀,最终可能会出现一个朝一个方向严重偏斜的树。这是一个问题,因为这种树的一部分目的是在插入时间和搜索时间之间进行权衡。如果树歪斜了,没有什么好处,事实上,找到一个节点比平面阵列中可能需要更长的时间。
这将引导您讨论均衡树木和AVL树木。为了保证任何搜索的最坏情况特定Big O值,每次插入导致左右节点数量变得太平衡时,树会重新平衡。虽然这会增加更多的插入和删除开销,但保证最糟糕的情况在您拥有大量数据时非常值得。
希望你玩得开心!数据结构是一个迷人而有趣的学习过程!
相关问题
- 1. 二叉搜索树节点大小
- 2. 如何查找并返回二叉树的最底部(最深节点)节点?二叉搜索树?
- 3. 二叉搜索树基于节点数量的最大和最小高度
- 4. 二叉搜索树最大值
- 5. 二叉搜索树中K个最小元素的总和
- 6. 布局二叉搜索树
- 7. 二叉树中最大的二叉树搜索树
- 8. 在二叉搜索树中查找最近的节点
- 9. 二叉搜索树从testdome
- 10. 什么是二进制子树的最左边和最右边的节点?
- 11. 二叉搜索树
- 12. 二叉搜索树包含函数
- 13. 查找二叉树的最深节点
- 14. 从删除节点二叉搜索树
- 15. 二叉搜索树节点删除
- 16. 二叉搜索树删除节点
- 17. 将节点插入二叉搜索树
- 18. 如何在二叉搜索树中查找最小值?
- 19. 最优二叉搜索树 - Cormen
- 20. 在二叉搜索树
- 21. 从二叉搜索树
- 22. 二叉搜索树分析
- 23. 二叉树搜索和跟踪
- 24. 平衡二叉搜索树子树
- 25. 二叉树搜索值小于
- 26. 二叉树的最低公共祖先(不是二叉搜索树)
- 27. 功能找到最深的二叉搜索树总和
- 28. 二叉搜索树
- 29. 最大的子树哪个是二叉搜索树(BST)
- 30. 如何在二叉搜索树的右子树中找到最小值