二叉树的结点计算题
二叉树的性质:
- 非空二叉树上叶子结点数等于双分支结点数加1【n0=n2+1】
- 非空二叉树的第i层上最多有2i-1个结点
- 高度h的二叉树最多有2h-1个结点
- 编号为i的结点,左孩子编号2i,右孩子编号2i+1
- n个结点的完全二叉树高度为log2(n+1)或[log2n]+1
- 总结点数=总分支数(所有结点度之和)+1
1、一颗有n个结点的树的所有结点的度数之和为多少?
所有结点度数之和=n-1
2、已知一颗完全二叉树的第6层(设根为第1层)有8个叶子结点,则该完全二叉树的结点个数最多是多少?最少是多少?
已知:完全二叉树叶子结点只可能在最下两层
结点最多情况:1~6层构成满二叉树,则其结点总数(该满二叉树)为26-1=63个
第6层有26-1=32个
其中,有8个叶子结点,则32-8=24个非叶子结点
非叶子结点有2个孩子(考虑最多)均在第7层为叶子结点
第7层有2×24=48个叶子结点
(总结点个数)max=48+63=111个
结点最少情况:第6层为倒数第1层
1~5层构成满二叉树,结点总数25-1=31个
其中,第6层为8个叶子结点
(结点总个数)min=31+8=39个
3、一颗有124个叶子结点的完全二叉树最多有多少个结点?
27-1=64,28-1=128,结论:完全二叉树不是满二叉树,因此完全二叉树有8层,除去底层,此二叉树有27-1=127个结点
设n为最底层结点个数。则:
n为偶数,n+64-n/2=124,n=120,则此树共有127+120=247个结点
n为奇数,n+64-(n+1)/2=124,n=121,则此树共有127+121=248个结点
4、具有1000个结点的完全二叉树的次底层的叶子结点个数为多少?
由log2(n+1)可以算出:1000个结点的完全二叉树有10层
该树上面9层是满的,有29-1=511个结点
由n0=n2+1,n0+n2为奇数,当n为偶数时,n1=1
所以,n=n0+n1+n2=2n0-1+n1=1000 得出n0=500
其中,有1000-511=489分布在第10层,11个分布在第9层
所以,次底层叶子结点个数为11
5、若在一颗完全二叉树中对所有结点按层次自上向下,同一层次自左向右进行编号,根结点编号为0,现有两个不同的结点,它们的编号为q和p,那么判断它们在同一层的条件应该是?
按照公式,编号为i(从0开始)的结点所在层号为log2(i+1)
当两个结点位于同一层,就有[log2(p+1)]+1=[log2(q+1)]+1,即[log2(p+1)]=[log2(q+1)]
若编号从1开始,则[log2(p)]=[log2(q)]
6、含有60个叶子结点的二叉树的最小高度为多少?
n0=60 ,n2=n0-1=59
n=n0+n1+n2=119+n1
当n1=0为完全二叉树,高度最小
h=log2(n+1)=log2120=7
所以最小高度为7
7、已知一颗满二叉树结点个数为20~40,此二叉树叶子结点有多少个?
已知:一颗满二叉树结点个数为2h-1
即20≤2h-1≤40
h=5
则叶子结点在最底层为:25-1=16个