当前位置: 首页 > 知识库问答 >
问题:

树满足BST属性,但我认为它不是BST?

皇甫宇定
2023-03-14

今天我在做一个关于二叉树的问题,在这个问题上,我发现了一个BSTree的结构,它是令人满意的属性:“每个节点的左子节点的值都较小,右子节点的值则较大”。但它不是BST(在我看来),因为root的值比它的一个孙子的值小。请解释一下这一切。

二叉树:

      7
     /  \
    4    10
   / \
  2   8

告诉我这是不是英国夏令时?解释一下。

共有3个答案

慕宪
2023-03-14

它不是BST,因为无序遍历树不会提供排序输出。罪魁祸首是值为8的节点。它位于根节点的左子树中,但大于根节点4。

宗晟
2023-03-14

不是,8

孙成化
2023-03-14

可以在此处找到更正确的BST定义:

  • 节点的左子树仅包含键小于节点键的节点

因此,尽管您的树满足每个节点左边的值较小,右边的值较大的特定情况,但它不满足涉及左右子树的更一般情况,因此不是BST。

 类似资料:
  • 我觉得我一定忽略了什么。 null Grunt@0.4.2应该匹配所有这些依赖项,但npm说它不匹配,安装失败。我是不是忽略了什么? 根据请求,我的package.json文件:

  • 如果二叉树是使用递归的bst,我正在尝试编写一个bool函数来返回true,我需要一些关于haskell语法的指导。 我知道要使二叉树成为 bst,左侧子树必须始终仅包含小于头部的节点。并且右侧子树必须始终仅包含大于头部的节点。我正在这样构建我的函数: 但是此代码会导致错误: 无法将预期类型“Bool”与实际类型“Int”匹配 参考

  • 问题内容: 为什么以下代码会产生错误? 这个类似问题的答案很有意义。但是,在我的示例中,该属性为get-only。为什么不行呢?是Swift的缺点,还是有一定的道理呢? 问题答案: 没有真正的理由为什么不可能做到这一点,只读属性要求 可以 是协变的,因为从完全合法的类型化的属性返回实例。 Swift暂时不支持。为此,编译器将必须在协议见证表和符合的实现之间生成一个thunk,以执行必要的类型转换。

  • 我正在尝试使用boto构建DynamoDB表,这将在表中保存IAM策略的各个方面。我已经为keyschema定义了属性,我不理解错误。我对DYanmoDB和AWS非常陌生。这是我的代码: 这就是我得到的错误: botocore.exceptions.ClientError:调用CreateTable操作时发生错误(ValidationException):检测到1个验证错误:值'[com.amaz

  • 我试图在AWS EC2实例上运行我的java Web应用程序。我得到的错误是 通过查看其他问题,我发现问题可能与MANIFEST.mf文件有关。我把那个文件放在META-INF文件夹下,但是它缺少主类标记。 我使用servlet之类的东西开发了Java web应用程序,但我没有使用SpringBoot,我不确定我的程序的起点是什么。 以下是我的pom.xml的一部分: 我原以为maven jar插

  • 本文向大家介绍请你说一下BST的特点,并手写代码判断一棵树是不是BST相关面试题,主要包含被问及请你说一下BST的特点,并手写代码判断一棵树是不是BST时的应答技巧和注意事项,需要的朋友参考一下 参考回答: BST(二叉排序树): 1、每个结点都有一个作为搜索依据的关键码,所有结点的关键码不同 2、左子树上所有结点的关键码小于根节点的关键码 3、右子树所有结点的关键码大于根节点的关键码 4、左子树