【问题标题】:Is there a unique Binary Search Tree for given sequence of numbers?给定的数字序列是否有唯一的二叉搜索树?
【发布时间】:2022-04-15 09:48:44
【问题描述】:

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

为以下数字序列制作 BST: 45、32、90、34、68、72、15、24、30、66、11、50、10

我创建了以下 BST:

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

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

这让我很清楚,一组数字可以存在超过 1 个 BST。

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

我的 BST 有效!

现在在再次去找教授之前,

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

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

【问题讨论】:

    标签: tree binary-tree binary-search-tree


    【解决方案1】:

    是的,插入顺序决定了生成的 BST。作为一个极端的极端情况,如果你插入已经排序的数字,你最终会得到一个只有左或只有右孩子的退化树,即一个列表。

    我同意给定的语言是模棱两可的“BST”,但很可能,通过谈论序列,他暗示必须以给定的顺序插入数字。

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

    【讨论】:

    • 感谢您的快速回复。您能否确认 BST_TECH 是由按给定顺序添加的元素创建的?
    • 是的,看来是这样。在插入时跟踪穿过树的数字并不难。尝试执行插入过程,您会看到结果。
    • 哦...是的,我现在看到了。对于给定的问题,我仍然会尝试获得至少一半的分数(3),我只需要多 2 分来提升成绩。再次感谢您的回答。
    【解决方案2】:

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

    希望你理解

    感谢和问候
    迪帕克·亚达夫

    【讨论】:

      猜你喜欢
      • 2017-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      • 1970-01-01
      • 1970-01-01
      • 2019-04-09
      • 2012-04-27
      相关资源
      最近更新 更多