平衡二叉树与完整二叉树之间的区别是什么?
说每个完整的二叉树是平衡树是真的吗?
反过来怎么样?
答案 0 :(得分:12)
平衡二叉树是二叉树,其中每个节点的两个子树的深度永远不会超过1。
完整二叉树是一棵二叉树,除最后一级以外的所有级别都已完全填充,最后一级的所有叶子都在左侧。
下面是一个平衡的二叉树,但不是一个完整的二叉树。每个完整的二叉树都是平衡的,但不是相反。
1
1 1
1 1 1
1
如所暗示的那样,在一个完整的树中,总是水平差异不会超过1,所以它总是平衡的。
答案 1 :(得分:2)
由于这进一步发展为关于完美、平衡、完整和完整的问题 - 这里的答案也澄清了这些问题。假设一棵二叉树,
平衡:每个节点的左右子树的高度差不超过1。
Full:除叶节点外的所有节点都有 2 个子节点
完成:
完整和平衡 - 所有节点都有 0 或 2 个子节点,level 3 - level 2 <= 1
,(不完整 - 最后一级节点不是最左边的尽可能)
1 --- LEVEL 0
/ \
1 1 --- LEVEL 1
/\ /\
1 1 1 1 --- LEVEL 2
- /\ - -
1 1 --- LEVEL 3
x x - -
完整、平衡和完整 - 所有节点都有 0 或 2 个子节点,3 - 2 <= 1
,最后一级节点尽可能靠左:
1 --- LEVEL 0
/ \
1 1 --- LEVEL 1
/\ /\
1 1 1 1 --- LEVEL 2
/\ - - -
1 1 --- LEVEL 3
- -
完整 - 所有节点都有 0 或 2 个子节点(不平衡 - 3 - 1 > 1
,不完整 - 级别 1有一个有 0 个孩子的节点):
1 --- LEVEL 0
/ \
1 1 --- LEVEL 1
/ \ -
1 1 --- LEVEL 2
/ \ - x x
1 1 --- LEVEL 3
- -
完整和平衡 - 最后一级节点尽可能靠左,3 - 3 <= 1
(未满 - 有一个二级节点1 个孩子):
1 --- LEVEL 0
/ \
1 1 --- LEVEL 1
/\ /\
1 1 1 1 --- LEVEL 2
/\ /\ /\ /x
1 1 1 11 1 1 --- LEVEL 3
- - - -- - -
平衡 - 3 - 3 <= 1
,(未满 - 有一个带有 1 个子节点的 2 级节点,未完成 - 最后一级节点尽可能不靠左)
1 --- LEVEL 0
/ \
1 1 --- LEVEL 1
/\ /\
1 1 1 1 --- LEVEL 2
/\ /\ /x /\
1 11 11 1 1 --- LEVEL 3
- -- -- x - -
以上例子都不是完美的
答案 2 :(得分:1)
当一个高度为h的二叉树的所有叶子都在h级并且每个父亲都有两个孩子时,
树被称为完整
当所有级别但最后一个包含尽可能多的节点时,树被称为完成,并且最后一级的节点从左到右填充。 (不完整,但完整)
当二叉树中的每个节点都有两个子树,其高度完全相同时,该树被称为完全平衡
完全平衡的树木已满
如果节点的子树相差不超过一个<树> 高度平衡或只是平衡
答案 3 :(得分:0)
平衡树:平衡树是二叉树的一种形式,其中在每个节点上左子树的高度和右子树的高度之差最大为 k ,其中k将是平衡因子。如果该平衡因子变为0,则该树将称为完全平衡树。
示例:
8
6的1
3,9,1
此树是平衡因子为1的平衡树,因为每个节点的子树的高度差异为0或1。
完整的二叉树:如果除叶子的每个级别都已完全填充,则说树是完整的。并且在叶子节点上的任何新插入都将从左到右,这意味着将首先完全填充左侧级别的叶子。
示例:
8
6
1
3,5,4,1
现在,该树是完整的二叉树,如果必须执行任何新的插入操作,则该树应位于左侧的叶子下,在此示例中为3。一旦3被左,右子项填充,则5将成为下一个要插入的新叶子。