在完整的k进制树中,每个内部节点都有k个子节点。具有n个内部节点的此类树中的叶子数为
(A) NK
(B) (n – 1)k + 1
(C) n(k – 1)+ 1
(D) n(k – 1)答案: (C)
解释:
需要背景–树和重复关系
我们必须通过形成递归关系来解决这个问题。令T(n)是具有n个内部节点的树中的叶子数。我们必须以某种方式使T(n)与T(n-1)相关。
考虑一棵n = 1的树。这棵树将恰好具有k个叶子。
尝试从上面的树中创建带有2个内部节点的树。我们必须使一个叶节点成为一个内部节点,并且在执行此操作时,我们将获得更多的k叶。因此,由于我们将一个叶子更改为内部节点加k(新转换的节点现在产生了k个更多的叶子),因此新构建的树中的叶子节点数将比原始树少1。
Thus, T(n) = T(n-1) - 1 + k = T(n-1) + k -1
= T(n-2) + 2*(k-1) Solving By Substitution Method
= T(n-3) + 3*(k-1)
.
.
.
= T(n-(n-1)) + (n-1)*(k-1)
= T(1) + (n-1)*(k-1)
= k + (n-1)*(k-1) Forming Base Case : T(1) = k
= n(k – 1) + 1
在Gate中,我们建议您通过2-3个示例并删除选项来解决此问题。但是,在以后的访谈中,您可能必须向他们展示如何形成并解决递归关系。
该解释由Pranjul Ahuja提供。
访问以下链接以了解有关递归关系的更多信息:
麻省理工学院关于渐近符号的视频讲座复发|替代,主方法
这个问题的测验