📜  门| GATE-CS-2005 |第36章

📅  最后修改于: 2021-06-29 00:56:22             🧑  作者: Mango

在完整的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提供。

访问以下链接以了解有关递归关系的更多信息:

麻省理工学院关于渐近符号的视频讲座复发|替代,主方法

这个问题的测验