本文简单给出了在满二叉树中 内部节点数目(
Ci) = 叶子节点数目(
Cl) - 1 的两种证明方法
二叉树大家都不陌生,但是分类上可能大家就不那么熟稔了,本篇博文中提到的所谓满二叉树,定义上也有些分歧,在此我们采用如下定义:
满二叉树(Full Binary Tree),即只存在 度为 0 的节点(叶子节点) 和 度为 2 的节点(内部节点) 的二叉树
(定义中提到的 “度” 即为二叉树节点的分支数目)
根据这个定义,以下的二叉树都是满二叉树:
而下面的二叉树则不是满二叉树,因为存在度为 1 的内部节点:
满二叉树中节点数目满足以下等式:(设叶子节点的数目为
Cl, 内部节点的数目为
Ci)
Ci=Cl−1
证明方法一
上述结论的一般证明方法是这样子的:
- 首先考虑满二叉树的分支数目(设为
B)对应的节点数目:
由于除根节点外,所有分支都对应一个节点,所以我们有:
B=Ci+Cl−1
由于叶子节点对应 0 个分支(度为 0),内部节点对应 2 个分支(度为 2),所以我们有:
B=Ci∗2+Cl∗0
综合上面两式,我们即可证明结论:
Ci=Cl−1
证明方法二
实际上,我们还可以使用数学归纳法来证明:
考虑基础情况(只有一个根节点(或者说一个叶子节点)):
此时我们有:
Cl=1,Ci=0
显然满足等式.
接着我们对一般情况进行归纳,由于是满二叉树的关系,所以一般情况一定满足下面的树形结构:
图中的左右子树也都是更小规模的满二叉树.
我们设
- 左子树中的叶子节点数目和内部节点数目分别为
Cll 和
Cli
- 右子树中的叶子节点数目和内部节点数目分别为
Crl 和
Cri
于是我们有:
Cll+Crl=ClCli+Cri+1=CiCli=Cll−1Cri=Crl−1(1)(2)(3)(4)
将
(3)
(4) 代入
(2), 我们有:
Cll−1+Crl−1+1=Ci=>Cll+Crl−1=Ci
再代入
(1), 我们即可得出结论:
Cl−1=Ci
参考资料