单选题 25.下列说法中,正确的是( )。
Ⅰ.具有10个叶子结点的二叉树中有9个度为2的结点
Ⅱ.设高度为5的二叉树上只有度为0和度为2的结点,则该二叉树中所包含的结点数至少为9
Ⅲ. —棵完全二叉树上有1 001个结点,则可知叶子结点的个数为501个
Ⅳ.高度为h的完全二叉树最少有2h个结点
【正确答案】 D
【答案解析】Ⅰ:二叉树叶子结点的个数比度为2的结点的个数多1,故I正确。
总结:这个性质在选择题中常有体现(见下面的补充例题),并且需要灵活运用。比如题目可能问,二叉树中总的结点数为n,则树中空指针的个数是多少?我们可以将所有的空指针看作叶子结点,则图中原有的所有结点都成了双分支结点。因此可得空指针域的个数为树中所有结点个数加1,即n+1个。
这个性质还可以扩展,即在一棵度为m的树中,度为1的结点数为n1,度为2的结点数为n2……度为m的结点数为nm,则叶子结点数n0=1+n2+2n3+…+(m—1)nm。推导过程如下:
总结点=n0+n1+n2+n3+…+nm………………,①
总分支数=1×n1+2×n2+…+m×nm(度为m的结点引出m条分支)………………②
总分支数=总结点数一1………………③
将式①和式②代入式③并化简得
n0=1+n2+2n3+…+(m—1)nm
补充例题:在一棵二叉树中度为0的结点个数为k,度为1的结点个数为m,则该二叉树采用二叉链存储结构时,有( )个指针指向孩子结点。
A.k
B.m
C.2k+m—2
D.2k+m
C.本题考查树的链式存储结构。
首先,由二叉树的性质可知,n0=n2+1(多次用到,考生一定要记住!),得到n2=k—1。其次,二叉树的结点总数n=n0+n1+n2=2k+m—1。求指向孩子结点的指针个数其实就是求该二叉树的分支数,而分支数就是等于总结数一1,所以答案为2k+m—2,故选C选项。
Ⅱ:最少结点的情况应该是除根结点层只有1个结点外,其余4层都有2个结点,因此结点总数为2×(5—1) +1=9。如图6—4所示,故Ⅱ正确。