在完整的 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 提供。
访问以下链接以了解有关递归关系的更多信息:
麻省理工学院渐近符号视频讲座 |复发 |替代,主方法
这个问题的测验