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

📅  最后修改于: 2021-09-26 03:56:23             🧑  作者: Mango

在完整的 k 叉树中,每个内部节点都恰好有 k 个子节点。这种具有 n 个内部节点的树的叶子数为
(一) 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 个叶子节点。因此,新构建的树中的叶节点数将比原始树少 1,因为我们已将 1 个叶更改为内部节点加 k(新转换的节点现在产生了 k 个更多叶)。

树

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 提供。

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

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

这个问题的测验