在一棵度为4的树T中,若有20个度为4的结点,10个度为3的结 点,1个度为 2 的结点,10 个度为1 的结点,则树T的叶结点个数是()。 A.41 B.82 C.113 D.122

一、问题

在一棵度为4的树T中,若有20个度为4的结点,10个度为3的结点,1个度为 2 的结点,10 个度为1 的结点,则树T的叶结点个数是(B)。

  • A.41
  • B.82
  • C.113
  • D.122

分析:
求解该问题时需要了解的几个概念:
①结点的度:该结点的子结点个数。
例如:度为4的结点意思就是,该结点有4个子结点,度为3,则3个子结点,以此类推。
②树的度:树中结点的最大度数。
例如:度为4的树,则说明,树中结点的最大度数为4,即最多有4个子结点。
③叶子结点:度为0(没有子女结点)的结点。
例如:本题要求的叶结点的个数,其实也就是求度为0的结点的个数。

那么根据这些,首先我们可以拟定一个思路,就是先求总结点数,减去各个有度的结点数,最终得到的就是叶子结点数。

二、思路实现

  • 第一步,求总结点数 = n0 + n1+n2+…+n_m (m代表度数,n代表对应度数的结点数)

    例如:如n0 ,即度为0的结点(叶结点)个数,n1,度为1结点的个数,其余同理。

    那么据此,我们可以推出总结点数 = n0+20+10+1+10 = n0 + 41

  • 第二步,求总分支数 = 0 * n0 + 1 * n1 + 2 * n2 + … +m * n_m = 1 n1 + 2 n2 +… m n_m

    度为m的结点可以分出m条分支,例如度为1的结点,则可以分出1条分支,度为2的结点,则两条分支,其余同理。

    所以在总结点数求法的基础上,我们乘上,对应的分支数,就是总分支数总分支数 = 1 * 10 + 2 * 1 + 3 * 10 + 4 * 20 = 10 + 2 +30 +80 =122

  • 第三步,根据二者关系求解叶结点n0的个数(总结点数 = 总分支数 + 1)
    由第一步,总结点数 = n0 + 41 ①,第二步,总分支数 = 122 ②
    联立①②,可得, n0 + 41 = 122 +1
    解得,n0 = 82。
    故本题选B,叶结点的个数为82。

三、补充解释(为什么总结点数 = 总分支数 + 1?)

因为根据树的定义,除了根结点以外,每个结点都有一个唯一的父结点,即每个结点都对应一个指向它的分支。

因此,除了根结点以外的结点数等于分支数,即总结点数 - 1 = 总分支数。而根结点没有父结点,也没有指向它的分支,所以树中的结点数等于分支数加1,即总结点数 = 总分支数 + 1。

问题记录时间:2023.10.23

Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder)
点赞加关注,收藏不迷路!本篇文章对你有帮助的话,还请多多点赞支持!

猜你喜欢

转载自blog.csdn.net/qq_51646682/article/details/133984012