
二叉树(Binary Tree)
- 每个节点的度最大为2。
- 左子树和右子树是有序的。
- 即使某个节点只有一颗子树,也要区分是左右子树。
性质
非空二叉树的第i层,最多有 个节点。
对于任何一颗非空二叉树,如果叶子节点的个数为,度为2的节点个数为
,则有
。
- 假设度为1的节点数为
那二叉树的节点总数为
。
- 二叉树的边数
。
真二叉树(Proper Binary Tree)
所有节点的度为0或者为2。

满二叉树(Full Binary Tree)
所有节点的度为0或者为2(真二叉树)&& 所有的叶子节点都在最后一层。

完全二叉树(Complete Binary Tree)
叶子节点只会出现最后2层,而且最后1层的节点都向左对齐
- 度为1的节点只有左子树
- 度为1的节点个数<=1
- 同样节点个数的二叉树,完全二叉树的高度最小
- 假设完全二叉树的高度为h(h>=1)那么
- 至少有
个节点
- 至多有
个节点(满二叉树)
- 总结点数量为n
-
-
- h =
+ 1
- floor()向下取整
- ceiling向上取整
- h =
-
- 至少有

习题:
如果有一颗完全二叉树有589个节点,求叶子节点个数。
假设:
叶子节点个数为
度为1的节点个数为
度为2的节点个数为
总节点个数为
就有
已知
所以
因为T = 589 完全二叉树度为1的节点个数
假设n1 = 1
589 = + 1 - 1
= 494.5
不成立
假设n1 = 0
589 = + 0 - 1
= 495
成立
所以叶子节点的个数为495
喜欢的可以关注下我的公众号,会在第一时间更新
