- 以下性质都只针对二叉树:
(1)第n层(n >=1)上至多有2^(n-1)个节点。
第一层为 1 2^0
第二层为 2 2^1
第三层为 4 2^2
...
第i层为 2^(n-1)
(2)深度为k时,至多有2^k-1个节点(k>=1)。
由(1)可知用等比数列前n项和求出。
(3)具有n个节点的完全二叉树的深度为k = ⌊log₂n⌋+1.
k层完全二叉树,就是前(k-1)层为满二叉树,第k层均为叶结点,可以不满。所以结点与深度的关系为如下:
2^(k-1)<= n <=2^k-1 (<2^k) (ps:不等式右边就是(1))
log₂n<=k<=log₂n+1 推出 k = ⌊log₂n⌋+1
(公式中用不用+1可以这样去想)当n=1时深度是1,n=2或3时深度为2。
(4)对一颗有n个节点的二叉树的节点按层次自左至右进行编号,则对于任意一个节点i,有:
- 当 i > 1, 则双亲为⌊i/2⌋
- 当 2i > n, 节点没有左孩子,否则左孩子为 2i. (ps:因为每个节点的左孩子都是双数的)
- 当 2i + 1 > n, 参考上一条。
(5)对任意一颗二叉树,叶节点 数为n0,度为1的节点数为n1,度为2的节点数为n2,则n0 = n2 + 1。
设该二叉树的边数为N,节点数为M,则
M = n0 + n1 + n2; N = M - 1;
又 N = n1 + 2 * n2;
得 n0 = n2 + 1;
ps:满二叉树和完全二叉树: