代码之家  ›  专栏  ›  技术社区  ›  Vanshaj

给定的数字序列是否有唯一的二进制搜索树?

  •  0
  • Vanshaj  · 技术社区  · 6 年前

    所以,我在考试中问了这个问题:

    对以下数字序列进行BST: 45, 32, 90, 34, 68, 72, 15, 24, 30, 66, 11, 50, 10

    我创建了以下BST: BST_ME

    但标记错误,我被告知这是正确的: BST_TECH

    我对答案持怀疑态度,所以我进行了研究,发现: Number of binary search trees over n distinct elements

    这让我很清楚,对于一组数字,可以存在多个BST。

    然后,为了确保我创建的树是BST,我从这里获得了帮助: How do you validate a binary search tree?

    我的BST有效!

    现在 再去找教授之前,

    • 我想知道数字的给定顺序是否对BST的构造很重要?如果是,问题的语言是否指定我按顺序添加元素?
    • 讲师获得BST的方法是什么?

    注意:我创建的BST不是基于某些特殊方法,我使用BST的基本属性创建的。

    2 回复  |  直到 2 年前
        1
  •  0
  •   Nicola Gigante    6 年前

    是的,插入顺序决定了结果BST。作为一种极端情况,如果插入已排序的数字,则最终会得到一棵退化树,该树只有左或右子级,即列表。

    我同意给定的语言在BST中是不明确的,但最有可能的是,通过讨论序列,他暗示数字必须按给定的顺序插入。

    实际上,BST作为正确答案正是您通过按给定顺序插入元素所获得的结果。

        2
  •  0
  •   M123    2 年前

    从左向右遍历 把左边的部分(从开始)作为根,然后从开始(遍历)看谁更小或更大 如果较小,则将其推至根部左侧 否则就把它推到根部的右侧

    enter image description here

    希望你能理解

    感谢(&A);当做
    Deepak Yadav公司