【问题标题】:Binary Search Tree Confusion (best-case)二叉搜索树混淆(最佳情况)
【发布时间】:2014-06-10 13:42:02
【问题描述】:

我目前正在准备考试,其中一个令我感到困惑的问题是:

给出密钥 A X C S E R H 的 5 个排序,当将其插入初始空 BST 时,生成最佳情况树。假设按字典顺序/字母顺序。

答案如下:

这里有一些可能的排序...

H C A E S R X

H C A E S X R

H C E A S R X

H C E A S X R

H C E S A R X

我想知道是否有人可以澄清一下“H”将如何处理根节点?根据我目前的理解,我假设“A”是根。我想我需要澄清一下如何获得 BST 的最佳案例树。如果有人能帮助我理解这一点,我将不胜感激。

【问题讨论】:

  • 这可能太啰嗦了,但我只是好奇 - 哪个机构的考试题是?
  • 您是否应该平衡您的 BST?这可能会使 H 成为根

标签: java algorithm data-structures binary-search-tree


【解决方案1】:

您的第一个条目将是您的根。在那之后,在你的根之前的任何东西(在这种情况下按字母顺序)都会向左移动; AFTER 将向右移动。

每一个都会产生一棵树,可以按字母顺序从左下角到右下角追踪。

如您所见,这会生成一棵树,可以从左下角向上读取到根(在继续向上之前探索父级的每个分支)以创建字母序列

【讨论】:

  • +1 当树写成直线 HCAESRX 等时,很难想象树,这让我很困惑。好简单的答案!
【解决方案2】:

如果 A 是根节点,那么所有节点都在它的右边,那么你就没有树的优势,你会得到更类似于链表的东西。为了让树成为最佳情况树,您希望从根节点到左右的节点数量相似,这样树的深度就会更小,您将获得更好的性能。

【讨论】:

  • 现在说得通了!谢谢
猜你喜欢
  • 1970-01-01
  • 2017-05-08
  • 2020-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-31
  • 2023-03-08
相关资源
最近更新 更多