1. 一般二叉树性质
- 在非空 N 层深度的二叉树中, 第 N 层最多有 2^N-1 个节点 (N≥1).
- 在深度为 k 的二叉树上, 最多有 2^k-1 个节点 (N≥1).
2.完全二叉树性质
-
对于具有 n 个节点的完全二叉树, 其深度为 (log2 n) + 1.
满二叉树一定是完全二叉树, 反之不一定成立
解析过程: 深度为 k 的满二叉树中, 其节点总数为 2^k-1 = n. 完全二叉树最多节点为 2^k-1, 因为是完全二叉树, 所以倒数第二层一定是满节点,节点数为 2^(k-1)-1.
根据上面结论得出: 2^(k-1)-1 < n ≤ 2^k-1 , 因为节点n为整数, 所以可以推出 2^(k-1) < n ≤ 2^k 可以得出 k -1 < log2 n ≤ k --> k = (log2 n) + 1
-
n 个节点的完全二叉树的节点按次序编号, 对任意节点 i ( 1 ≤ i ≤ n):
- 如果 i = 1, 则无双亲节点,节点是二叉树的根; 如果 i > 1, 则双亲节点为 i / 2, 向下取整.
- 如果 2i > n, 则节点 i 没有左孩子, 否则其左孩子节点为 2i.
- 如果 2i + 1 > n, 则节点 i 没有右孩子, 否则其右孩子节点为 2i + 1.
- 当 i = 1 时, 节点为根节点 (1); 当 i = 9时, 9 / 2 = 4 ( 向下取整 ), 双亲节点为 (4).
- 当 i = 6 时, 2 * 6 > 10, 所以 i(6) 没有左孩子; 当 i = 2 时, 2 *2 < 10, 所以 i(2) 有左孩子, 左孩子为 2 * = 4.
- 当 i = 6 时, 2 * 6 + 1 > 10, 所以 i(6) 没有右孩子; 当 i = 2 时, 2 * 2 + 1 < 10, 所以 i(2) 有右孩子, 右孩子为 2 * 2 + 1 = 5.