二叉树的结点计算题

二叉树的性质:

  • 非空二叉树上叶子结点数等于双分支结点数加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个

原文地址:https://www.cnblogs.com/wangzheming35/p/13278348.html