二进制搜索树的高度没有构建它

时间:2015-04-02 14:04:38

标签: tree height binary-search-tree

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

是否有任何方法可以确定树的高度,而无需构建整棵树?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我不知道任何算法。快速思考是它可以沿着线 - 第一个元素是根,树高是1,然后检查接下来的两个元素,并根据它们的高度h = 2或3,然后检查接下来的4个元素,并根据它们是什么h = h +(1或2或3或4)然后检查接下来的8个元素和h = h +(f(元素) - 返回多少这些元素增加树高的函数)等等......这只是非常简化的例子我将尝试追求什么。甚至不确定它是否比简单地构建树并沿着线保存高度信息更快,但至少如果您管理该功能,它将被执行到位。那是BTW的有趣问题。