二叉树的特点:
- 每个节点最多有两个子树
- 左子树和右子树是顺序的,次序不能仍以颠倒
- 即使数中树有一个子树,也要区分它是左子树还是右子树。
特殊的二叉树
- 斜树:所有节点都只有左子树的二叉树叫左斜树,所有节点都只有右子树的二叉树叫右斜树
- 满二叉树:如果所有分支节点都存在左子树和右子树,并且所有叶子都在同一层上,这样的二叉树称为满二叉树
- 完全二叉树:对于一颗具有
n
n
n节点的二叉树按层序编号,如果编号为
i
i
i的节点与同样深度的满二叉树中编号为
i
i
i的节点在二叉树中的位置完全相同,则这颗二叉树称为完全二叉树
平衡二叉树的性质
- 在二叉树的第i层之多右 2 i − 1 2^{i-1} 2i−1个节点
- 深度为k的二叉树至多右 2 k − 1 2^{k}-1 2k−1个节点
- 任何一个二叉树T,如果其终端节点数为 n 0 n_{0} n0,度为2的节点数为 n 2 n_{2} n2,则 n 0 = n 2 + 1 n_{0}=n_{2}+1 n0=n2+1
- 具有n个节点的完全二叉树深度为 ⌊ l o g 2 n ⌋ + 1 \lfloor log_{2}n \rfloor+1 ⌊log2n⌋+1
- 如果对一颗有n个节点的完全二叉树的节点按增序编号,对任一节点i有:
1,如果 i = 1 i=1 i=1,则节点 i i i是一颗二叉树的根,无双亲,如果 i > 1 i>1 i>1,则双亲是节点 ⌊ i / 2 ⌋ \lfloor i/2 \rfloor ⌊i/2⌋
2,如果 2 i > n 2i>n 2i>n,则节点 i i i无左孩子;否则其左孩子节点为 2 i 2i 2i
3,如果 2 i + 1 > n 2i+1>n 2i+1>n,则节点 i i i无右孩子;否则其左孩子节点为 2 i + 1 2i+1 2i+1