节点数和高度之间的关系

时间:2013-08-07 09:31:58

标签: data-structures height binary-search-tree

我正在阅读算法设计手册。作者指出树的高度是:

h = log n, 
where 
h is height 
n = number of leaf nodes
log is log to base d, where d is the maximum number of children allowed per node.
然后他接着说,一个完美平衡的二叉搜索树的高度将是:

h = log n

我想知道第二个语句中的n是否表示“叶节点的总数”或“节点的总数”。

这提出了一个更大的问题,节点总数和完美平衡的二叉搜索树的高度之间是否存在数学关系?

3 个答案:

答案 0 :(得分:5)

当然,n = 2^h其中h, n分别表示树的高度和节点数。

校对草图:

完美平衡的二叉树有

  • 每个内部节点的实际分支因子为2。
  • 每个叶节点的根路径长度相等。

关于完美平衡二叉树中的叶节点:

因为叶子的数量是节点的数量减去完美平衡的二叉树中的节点数量,其高度递减1,所以叶子的数量是所有节点数量的一半(确切地说,是{的一半} {1}})。

所以n+1只是变化1,这通常不会在复杂性方面产生任何实际影响。该声明可以通过记住它与将单个节点树的高度定义为0(标准)或1(异常,但可能很方便区分它与空树)相同的变化来说明。

答案 1 :(得分:2)

如果你谈论所有节点或只是叶子节点,这并不重要:要么被上面和下面的边界绑定,要么乘以常数因子。在完美平衡的二叉树中,完整级别上的节点数是高于1的所有节点的数量。

答案 2 :(得分:0)

在完整的二叉树中,节点数(n)和树高(h)在下面有如下关系。

n = 2 ^(h + 1)-1

这是树的所有节点