本文概览:
- 本文介绍的是最基础的二叉树节点和深度的有关规律,并不涉及严密的数学推理和证明;
- 在计算它的深度和节点数时,一定要画个图来辅助理解;
- 对于新手来说,完全可以使用不完全归纳法直接得出节点数规律,深度的规律;
通用特性
基本特点:
- 每个节点最多有两颗子树;
- 左子树和右子树时有顺序的,次序不能颠倒;
- 即使某节点只有一颗子树,也要区分是左子树还是右子树;
节点数分析:
- 在二叉树的第i层,至多有2i-1个结点;节点为2i-1个时为满二叉树;
- 深度为k的二叉树至多有2k-1个结点;
深度分析:
- 包含n个结点的二叉树的高度至少为(log2n)+1;
满二叉树专有特性
当需要使用满二叉树的性质时,手画一个深度为3的二叉树,使用不完全归纳法得性质。
节点分析:
- 一棵树的深度为h,最大层数为k,深度与最大层数相同,k=h;
- 叶子数为2h;
- 第k层的结点数是:2k−1;
- 总结点数是2k−1,且总节点数一定是奇数。
完全二叉树专有特性
当需要使用完全二叉树的性质时,手画一个深度为3的二叉树,使用不完全归纳法得性质。
节点分析:
- 求父节点:有N个结点的完全二叉树各结点如果用顺序方式存储,则结点之间有如下关系: 若I为结点编号则 如果I>1,则其父结点的编号为I/2;
- 求子节点:完全二叉树,如果2*I<=N,则其左儿子(即左子树的根结点)的编号为2*I;若2*I>N,则无左儿子; 如果2*I+1<=N,则其右儿子的结点编号为2*I+1;若2*I+1>N,则无右儿子。
深度分析:
- 结点i所在层次的深度为(log2i)+1;
- 具有n个结点的完全二叉树的深度为(log2n)+1或者log2(n+1);
注意:以上分析中字母取值均符合要求,例如:i>=1, k>=1;