二叉树中深度为d的节点数

时间:2020-09-10 21:37:43

标签: algorithm data-structures tree binomial-heap

因此,我读到深度为d的k阶二叉树中的节点数为k选择d。但是,我看不出结果来自何处。有人对此有简单的证明/直觉吗?

2 个答案:

答案 0 :(得分:1)

这是使用归纳法对结果的简单证明,尽管我认为必须有一个更优雅,更直观的论证,不需要归纳法。

我们将通过在n上的归纳证明这一说法:

深度为d的n阶二项式树中的节点数为n选择d。

n = 0的基本情况要求我们证明深度d = 0时为(0选择0),即1。这是事实。是的!

对于归纳步​​骤,假设对于n = k,这是正确的;我们将在n = k + 1时证明这一点。回想一下,可以通过取两个k阶二项式树并使一个成为另一个的子级来形成k + 1阶的二叉树。因此,如果您选择深度d,则树中深度d处的节点数为

  • 一棵k阶树在深度d处的节点数,
  • 距离k阶另一棵树d-1深度处的节点数,因为该树向下移动了一个位置。

我们的归纳假设告诉我们,此处的节点数为(k选择d)+(k选择d-1)。现在,有关二项式系数的有趣事实!如果添加(k选择d)+(k选择d-1),会得到什么?得出(k + 1选择d)。 (想想Pascal的三角形是一个很好的简单证明,或者算一下数学就可以了。)

我们拥有k + 1的索赔要求,这结束了我们很好的归纳证明。

现在剩下要做的就是弄清直觉。 :-)

答案 1 :(得分:1)

@templatetypedef给出正式的(ish :)证明。这是一个非正式的证明:

在Pascal三角形中,N层的节点是N-1层的总和,再加上右移的N-1层。

在二项式树中,N阶的树包含N-1阶的树,再加上下移的N-1阶树。

如果将二叉树的每个级别替换为该级别中的节点数,则二叉树的构造将完全成为Pascal的三角形构造。

相关问题