知道节点

时间:2015-12-09 14:56:03

标签: algorithm binary-tree

我一直在努力确定自平衡二叉树的高度,知道它的节点数(N),我带有公式:

  

height = ceilling [log2(N + 1)],其中ceilling [x]是不小于x的最小整数。

事情是我在互联网上找不到这个公式,看起来很准确。

  • 是否有任何自平衡二叉树的情况,这个公式会失败?

  • 那么确定树高的通用公式是什么?

1 个答案:

答案 0 :(得分:2)

Wikipedia的Self-balancing binary search tree文章中有一个公式。

h >= ceilling(log2(n+1) - 1) >= floor(log2(n))

最低身高为floor(log2(n))。然而,值得注意的是

  

BST项目插入的最简单算法可能会在相当常见的情况下产生高度为n的树。例如,当项目按排序键顺序插入时,树将退化为具有n个节点的链接列表。

因此,您的公式与“良好近似”公式(仅偏1)相差不远,但考虑到nlog2(n)之间的范围可能相当宽。