二叉树高度的不同解释

时间:2014-06-22 11:55:29

标签: algorithm data-structures binary-tree terminology

我正在研究数据结构和算法,这件事让我很困惑

二叉树的高度,因为它也用于AVL搜索树。

根据我正在阅读的书" Lipschutz的数据结构" ,它说"树T的深度(或高度)是T分支中的最大节点数。这比T的最大级数更多1。图7.1中的树7深度为5。"

图7.1:

             A 
            / \
           /   \           
          /     \
         /       \
        B         C
       / \       / \
      D   E     G   H
         /         / \
        F         J   K
                 /
                L

但是,在其他几个资源上,高度的计算方式不同,但给出的定义相同。例如,我在网上阅读http://www.cs.utexas.edu/users/djimenez/utsa/cs3343/lecture5.html

"这是一个示例二叉树:

                   1
                  / \
                 /   \
                /     \
               /       \
              2         3
             / \       / \
            /   \     /   \
           /     \   /     \
          6       7 4       5
         / \     /         /
        9  10   11        8

树的高度是所有节点深度的最大值。所以上面的树高3。"

另一个来源http://www.comp.dit.ie/rlawlor/Alg_DS/searching/3.%20%20Binary%20Search%20Tree%20-%20Height.pdf

说,"二叉树的高度 对于只有一个节点的树,根节点,如果有2,则高度定义为0 节点级别高度为1,依此类推。空树(除空节点外没有节点) 定义为高度为-1。 "

现在这最后两个解释相互符合,但没有与书中给出的例子相符。

另一个消息来源说"有两种约定来定义二叉树的高度 1)从根到最深节点的最长路径上的节点数。 2)从根到最深节点的最长路径上的边数。

在这篇文章中,遵循了第一个惯例。例如,下面树的高度为3。

              1
             / \
            2   3
           / \
          4   5

" 在这里,我想问一下root和leaf之间的节点数和边数是否相同? 叶子节点的高度是什么,根据书应该是1(因为最大级别的数量是0,所以高度应该是0 + 1 = 1, 但通常说叶节点的高度为0。 为什么这本书提到深度和高度同样的东西呢? 这件事真的让我感到困惑,我已尝试从多个来源澄清,但似乎无法在两种解释之间做出选择。 请帮忙。

==>我想补充一下,因为现在我接受了这本书的惯例,    在AVL搜索树的主题中我们需要计算平衡因子(这是高度左右子树的差异) 它说:

            C (-1)
           / \
      (0) A   G (1)
             /
            D (0)

括号中的数字是余额因素。

现在,如果我要跟随书的高度D是1而且G的右子树有高度(-1),因为它是空的,所以G的平衡因子应该是= 1 - ( - 1)= 2!< / p>

现在为什么D的高度在这里为0?

请帮助。

1 个答案:

答案 0 :(得分:0)

如果你关心的是平衡因素,那么身高的确切定义并不重要。回想一下,平衡因子是

height(left) - height(right)

因此,如果两者都比您最喜欢的身高定义更大或更小,则平衡因子不会改变,只要您相应地重新定义空树的高度。

现在的问题是&#34;分支中的最大节点数&#34;定义既是递归的,也没有指定基本情况。但由于单元素树的高度是根据此定义的高度,因此零元素树的高度的明显选择为零,如果您计算出公式,您将发现它有效。

您也可以通过观察另一个定义的基本情况为-1来达到零值,否则它总是给出比&#34; max小1的值。分支中的节点&#34;定义