完全二叉树和满二叉树:
- 满二叉树是指二叉树每一层的结点数都达到最大值
- 完全二叉树
- 除了最后一层的其他层的结点数都达到最大值,
- 最后一层的结点是从左往右的
二叉树的重要性质:
- 二叉树的第iii层有最多有2i−12^{i-1}2i−1个结点。
- 深度为kkk的二叉树最多有2k−12^k-12k−1个结点。
- 对任意二叉树,如果其叶子结点数为n0n_0n0,度为2的结点数为n2n_2n2,则n0=n2+1n_0=n_2+1n0=n2+1。
- 如果对一颗有n个结点的完全二叉树的结点按层序编号(从第1层到⌊log2n⌋+1\left \lfloor log2n \right \rfloor +1⌊log2n⌋+1层,每层从左到右),则对任意结点i(1≤i≤n)i(1 \leq i \leq n)i(1≤i≤n),有:
- 如果i=1i=1i=1,则结点是根节点,没有父结点;否则其父结点是⌊log2n⌋\left \lfloor log2n \right \rfloor⌊log2n⌋;
- 如果2i>n2i>n2i>n,则结点iii为叶子结点,无左子结点;否则,其左子结点是结点2i2i2i
- 如果2i+1>n2i+1>n2i+1>n,则结点iii无右子叶结点,否则其右子结点是结点2i+12i+12i+1。
证明:
1.对任何非空二叉树T,如果n0n_0n0为树叶节点数,且度数为2的节点数是n2n_2n2,试证n0=n2+1n_0=n_2+1n0=n2+1.
二叉树,n节点数有n-1条边.
1个节点若度数为2,显然边数为2,那么n2n_2n2个度数为2的节点的边数为2n22n_22n2;1个节点若度数为1,显然边数为1,那么n1n_1n1个度数为1的节点的边数为n1n_1n1.
设任意二叉树的节点数为n,则n−1=n1+2n2n-1=n_1+2n_2n−1=n1+2n2
而n=n0+n1+n2n=n_0+n_1+n_2n=n0+n1+n2,其中n1n_1n1是度数为1的节点数.
所以,n0=n2+1n_0=n_2+1n0=n2+1
完全二叉树图示: