二叉树的性质与存储结构
1、二叉树的性质
1.1 在二叉树的第i层至多有2i-1个结点
1.2 深度为k的二叉树至多有2k-1个结点(k≥1)
1.3 叶子数 = 度为2的结点 + 1
对任何一棵二叉树T,如果其叶子数为n0,度为2的结点数为n2,则n0 = n2+1
从下往上分析: 总边数 = 结点个数 - 1<因为根结点是没有双亲的,所以减去1>
从上往下分析: 总边数 = 度为2的结点*2 + 度为1的结点 * 1 <度为2就会往下延2条边,度为1会往下延1条边>
B = n-1 = B = n2*2+n1*1
算出总结点数n
n = n2*2+n1*1+1
又因为:
n = n2+n1+n0 <度为2的结点+度为1的结点+度为0的结点 = 等于结点数>
将这两个约分
n2+n1+n0 = n2*2+n1*1+1
n0 = n2+1
2、满二叉树与完全二叉树
2.1 满二叉树
2.2 完全二叉树
都是完全二叉树
3、完全二叉树的性质
3.1 具有n个结点的完全二叉树的深度为[log2n] + 1
3.2 双亲结点编号与孩子结点编号之间的关系
如果对一棵树n个结点的完全二叉树(深度为log2n+1)按层序编号(从第1层到log2n+1层,每层从左到右),则对任一结点(1≤i≤n),有
(1)如果i=1,则结点i是二叉树的根,无双亲;如果i>1,则其双亲是结点i/2
(2)如果2i>n,则结点i为叶子结点,无左孩子;否则,其左孩子是结点2i
(3)如果2i+1>n,则结点i无右孩子;否则,其右孩子是结点2i+1
性质总结
所有二叉树都有的性质
- 在二叉树的第i层至多有2i-1个结点
- 深度为k的二叉树至多有2k-1个结点(k≥1)
- 对任何一棵二叉树T,如果其叶子数为n0,度为2的结点数为n2,则n0 = n2+1
完全二叉树
- 具有n个结点的完全二叉树的深度为[log2n] + 1
- 如果对一棵树n个结点的完全二叉树(深度为log2n+1)按层序编号(从第1层到log2n+1层,每层从左到右),则对任一结点(1≤i≤n),有
(1)如果i=1,则结点i是二叉树的根,无双亲;如果i>1,则其双亲是结点i/2
(2)如果2i>n,则结点i为叶子结点,无左孩子;否则,其左孩子是结点2i
(3)如果2i+1>n,则结点i无右孩子;否则,其右孩子是结点2i+1