我对二叉树有一些疑问:
当“完整的二叉树是一个二叉树,其中每个级别,除了可能是最后一个,完全填充,并且所有节点都是如此”时,维基百科指出二叉树完整尽可能远的地方。“最后一个“尽可能远的”通道是什么意思?
如果(1)它是空的,或者(2)它的左右儿童是高度平衡的,并且左边树的高度是,那么一个结构良好的二叉树被称为“高度平衡”。在从How to determine if binary tree is balanced?取得的右树高度的1之内,这是正确的还是1值上的“抖动”?我读到了我联系的答案,右边和左边树的高度之间也可能有4的差异因素
完整和高度平衡的定义是仅适用于二叉树还是仅适用于任何其他树?
答案 0 :(得分:0)
根据维基百科中的定义,我得到了 this page。该定义取自那里,但经过修改:
定义:一个二叉树,其中除最深处之外的每个级别都被完全填充。在深度n,高度 树,所有节点必须尽可能远。
下面继续注释,
完整的二叉树在每个深度处具有2k个节点k <1。 n和2n和2 ^(n + 1) - 1个节点之间。
有时,定义会因方便而异(对某些内容有用)。该段落可能是一种变化,据我所知,它需要叶子节点首先填充最深层的左侧(即从左到右填充)。我通常发现的定义完全如上所述,但没有 通道。
通常,高度平衡树的定义就是你的定义 描述。换句话说:
当且仅当每个节点的两个子树的高度相差最多1时,树才是平衡的。
该定义取自here。同样,有时定义更灵活,以满足特定目的。例如,AVL tree的定义表示
在AVL树中,任何节点的两个子树的高度 最多相差一个
但是,我记得有一次我不得不重写算法以便树 如果任何两个子树的子树,将被视为高度平衡 节点最多不同2.请注意,您提供的定义是递归的,这对于二叉树来说非常常见。
n
个孩子)。答案 1 :(得分:0)
完整和高度平衡的定义是否适用于二进制 树或任何其他树?
简短回答:是的,它可以扩展到任何n-ary树。