完整的二叉树定义

时间:2012-08-11 14:17:19

标签: algorithm tree binary-tree

我对二叉树有一些疑问:

  • 当“完整的二叉树是一个二叉树,其中每个级别,除了可能是最后一个,完全填充,并且所有节点都是如此”时,维基百科指出二叉树完整尽可能远的地方。“最后一个“尽可能远的”通道是什么意思?

  • 如果(1)它是空的,或者(2)它的左右儿童是高度平衡的,并且左边树的高度是,那么一个结构良好的二叉树被称为“高度平衡”。在从How to determine if binary tree is balanced?取得的右树高度的1之内,这是正确的还是1值上的“抖动”?我读到了我联系的答案,右边和左边树的高度之间也可能有4的差异因素

  • 完整和高度平衡的定义是仅适用于二叉树还是仅适用于任何其他树?

2 个答案:

答案 0 :(得分:0)

  • 根据维基百科中的定义,我得到了 this page。该定义取自那里,但经过修改:

      

    定义:一个二叉树,其中除最深处之外的每个级别都被完全填充。在深度n,高度   树,所有节点必须尽可能远。

    下面继续注释,

      

    完整的二叉树在每个深度处具有2k个节点k <1。 n和2n和2 ^(n + 1) - 1个节点之间。

    有时,定义会因方便而异(对某些内容有用)。该段落可能是一种变化,据我所知,它需要叶子节点首先填充最深层的左侧(即从左到右填充)。我通常发现的定义完全如上所述,但没有 通道。

  • 通常,高度平衡树的定义就是你的定义 描述。换句话说:

      

    当且仅当每个节点的两个子树的高度相差最多1时,树才是平衡的。

    该定义取自here。同样,有时定义更灵活,以满足特定目的。例如,AVL tree的定义表示

      

    在AVL树中,任何节点的两个子树的高度   最多相差一个

    但是,我记得有一次我不得不重写算法以便树 如果任何两个子树的子树,将被视为高度平衡 节点最多不同2.请注意,您提供的定义是递归的,这对于二叉树来说非常常见。

  • 在一个孩子数量可变的树中,你不能说它是完整的(任何父母都可以拥有你想要的孩子数)。不过,它可以适用于 n-ary树(固定数量的n个孩子)。

答案 1 :(得分:0)

  

完整和高度平衡的定义是否适用于二进制   树或任何其他树?

简短回答:是的,它可以扩展到任何n-ary树。