当前位置: 首页 > 知识库问答 >
问题:

定义平衡二叉树时术语的混乱:子树的高度与节点的高度

颜英博
2023-03-14

参考这个问题的答案

平衡二叉树是:

  1. 左子树和右子树的高度最多相差一个,并且
  2. 左子树是平衡的,并且
  3. 右边的子树是平衡的

现在,用同样的例子

     A
   /   \
  B     C  
 /     / \  
D     E   F  
     /  
    G  

树的根在A.

现在,在查看高度平衡树的定义时,第一点表示:

>

  • 左右子树的高度最多相差一个

    如果我当前位于节点A,要确定A左子树的高度,如果我计算:

    • 从A(D)或

    如果我当前位于节点A,为了确定A的右子树的高度,如果我计算:

    • 从A(F)或
    • 节点C从A(扩展名C)看最深右侧子节点的高度(F)
  • 共有1个答案

    孙风畔
    2023-03-14

    “子树高度”通常翻译为“子树根高度”。在时间戳为13:17时,在听麻省理工学院开放式课程讲座时偶然发现了这个解释。

     类似资料:
    • 我一直在对二叉树做一些研究,发现每一个其他的来源都对二叉树中节点的深度和高度给出了不同的概念。 高度=从给定节点到叶节点的最大路径长度。 深度=从给定节点到根节点的边数。 我从这篇博文中得到了这个概念,但当只有一个节点,即根节点的高度是时,我感到困惑。

    • 我一直在努力确定自平衡二叉树的高度,知道它的节点数(N),我得出了以下公式: 高度=ceilling[log2(N1)],其中ceilling[x]是不小于x的最小整数。 问题是我在网上找不到这个公式,而且它看起来相当准确。 > 在自平衡二叉树的情况下,这个公式会失败吗? 那么,确定树的高度的一般公式是什么?

    • 所以,我一直在研究平衡的二叉查找树。 我谷歌了一下,这是我的发现: 二叉树,其中每个节点的两个子树的深度相差 1 或更小(来自维基百科) 难道就不能把平衡二叉树定义为高度不超过ceil(log(n ^ 1)/log ^ 2)的树吗? 从这个答案来看,提问者似乎已经问了同样的事情,但是公认的答案通过举斐波纳契树的例子拒绝了这个想法。斐波纳契树不是平衡树,对吗?我认为回答者可能会与AVL树中平衡树的定

    • 这总是使只有一个out的循环: 为了返回二叉树的正确高度,您还有其他想法(或想法如何更改此代码)吗? len是树中所有节点的数目,self。Queue是具有方法高度的类的子类。

    • 我在阅读下面的帖子后提出这个问题: 如何找到树的最小可能高度? 实际上,如果给二叉树的输入如下:100,50,70,60,我希望我的算法返回4。 但是下面的代码只返回1,因为它不区分叶[left==NULL] 没有人解释过如果我们希望输出为4而不是1,我们应该做什么。 有人能给我看看返回4而不是1的代码吗? 我认为我在上面选择了错误的样本值,人们对我真正想要的是什么感到困惑!!因此,将我的问题重新

    • 我需要关于计算二叉树高度的理论的帮助,通常是符号。 我看过以下文章: 计算二叉树的高度 其中一个帖子给出了以下符号: 高度(节点)=最大值(高度(节点L)、高度(节点R))1 假设我有以下二叉树: 因此,我是否计算左节点(8)和右节点(42)的最大值,然后加上1?我不太明白这种符号是如何计算树的高度的。