【问题标题】:Height of binary search tree without building it未构建二叉搜索树的高度
【发布时间】:2015-06-07 12:34:39
【问题描述】:

我有几百万个连续数字,例如{3, 1, 2, ...}。按照与它们相同的顺序,将数字插入到二叉搜索树中。我需要知道树的高度是多少。

有什么方法可以确定树的高度,而不用建一整棵树?

【问题讨论】:

    标签: tree height binary-search-tree


    【解决方案1】:

    如果它作为构建的一部分进行平衡,则它是 log2(n),其中 n 是数字的计数。否则,这是最好的情况,最坏的情况是 n。

    【讨论】:

    • 根据给定的例子,不能假设二叉树是平衡的。
    【解决方案2】:

    我不知道任何算法。快速的想法是它可以沿着这条线 - 第一个元素是根,树高是 1,然后检查接下来的两个元素,根据它们的高度 h = 2 或 3,然后检查接下来的 4 个元素,具体取决于它们是什么h = h + (1 or 2 or 3 or 4) 然后检查接下来的 8 个元素和 h = h + (f(elements) - 返回这些元素增加树高多少的函数) 等等...这只是非常简化的示例关于我会努力追求的东西。甚至不确定它是否会比简单地构建树并沿线保存高度信息更快,但如果您设法编写该函数,至少它会就地执行。顺便说一句,这是一个有趣的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-19
      • 2021-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-07
      相关资源
      最近更新 更多