二进制搜索树的最小值可以不是最左边的条目吗?

问题描述

如果我按照下面的方法构造一个二叉搜索树,对吗?还是这样的树不是有效的二进制搜索树?

    7
   / \
  5   8
     / \
    4  10

因为我遵循了左侧较小元素和右侧较大元素的规则。所以我想这是一个二进制搜索树?

解决方法

尝试手动走树;假装您是正在寻找4.的函数。

  • 您从树的根部开始:7。
  • 4小于7,所以您左移至5。
  • 4小于5,所以您再次左走。
  • 那里什么也没有,所以您得出的结论是树上没有4。

当然这是不正确的,所以不,这不是BST的有效设置。并非每个值都只需要相对于其直接父级位于正确的位置即可。每个值还必须相对于树中的其他节点处于正确的位置。

确切位置取决于每个值的插入顺序,但是在这种值配置下,4应该位于5的左侧。

,

这绝对是一棵二叉树,因为每个节点只有两片叶子。

但是就像其他人所说的,它不是二叉搜索树。一种判断方法是对于每个节点,所有左叶子的值应小于自身的值,所有右叶子的值应大于自身的值。只有这样才能执行二进制搜索。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...