二叉树的几个性质

在计算机科学中,二叉树(Binary tree)是每个结点最多只有两个子结点(即不存在分支度大于 2 的结点)的树结构。这两个子结点通常被称作“左子结点”和“右子结点”。

命题 \(A\):二叉树的第 \(n\) 层至多拥有 \(2^{n}\) 个结点(定义根结点所在层数 \(n_0=0\))。

\(C(n)\) 表示二叉树第 \(n\) 层拥有的结点数,则要证命题 \(A\),即证 \(\forall n\in Z^+_0\)\(C(n)\leq2^{n}\) 总成立。

\(n=0\) 时,\(C(0)\leq2^{0}=1\),命题成立。

假设 \(n=m\) 时命题 \(A\) 成立,即 \(\exists m\in Z^+_0\)\(s.t.\ C(m)\leq2^{m}\),则当 \(n=m+1\) 时:

由定义“二叉树的每个结点最多只有两个子结点”可知,第 \(m+1\) 层的结点个数最多为 \(2·C(m)\),即 \(C(m+1)\leq2·C(m)\)

\(C(m)\leq2^{m}\),故 \(C(m+1)\leq2·C(m)\leq2·2^{m}=2^{m+1}\),即命题 \(A\) 在第 \(m+1\) 层成立。

由数学归纳法, \(\forall n\in Z^+_0\),命题 \(A\) 总成立。

命题 \(B\):深度为 \(k\) 的二叉树最大为 \(2^{k+1}-1\)(定义二叉树的大小为二叉树中结点的总数、根结点所在深度 \(k_0=0\))。

\(S(k)\) 表示深度为 \(k\) 的二叉树的结点总数。

由命题 \(A\),二叉树的第 \(n\) 层至多拥有 \(2^{n}\) 个结点,故 \(\\S(k)=C(0)+C(1)+\cdots+C(k)\leq2^{0}+2^{1}+\cdots+2^{k}=1×(1-2^{k+1})/(1-2)=2^{k+1}-1\)

命题 \(C\):深度为 \(k\) 的满二叉树(完美二叉树)的大小(结点总数)为 \(2^{k+1}-1\)

对于深度为 \(k\) 的满二叉树,\(C(i)=2^{i}\) 总成立(\(i=\{0,1,2,3,\cdots,k-1,k\}\)),故满二叉树的结点总数 \(\\S(k)=2^{0}+2^{1}+\cdots+2^{k}=1×(1-2^{k+1})/(1-2)=2^{k+1}-1\)[1]

命题 \(D\):深度为 \(k\) 的完全二叉树的结点个数大于 \(2^k-1\),小于等于 \(2^{k+1}-1\)

完全二叉树从根结点到倒数第二层满足完美二叉树,最后一层可以不完全填充。

由命题 \(C\),对于深度为 \(k\) 的完全二叉树,其从根结点到倒数第二层部分的节点总数为 \(2^k-1\),最后一层填满的情况下二叉树的结点总数为 \(2^{k+1}-1\),故完全二叉树的结点个数大于 \(2^k-1\),小于等于 \(2^{k+1}-1\)


  1. 类似也不难得到满多叉树的大小,比如高度为 \(k\) 的满三叉树的大小 \(S_t(k)=3^{0}+3^{1}+\cdots+3^{k}=(3^{k+1}-1)/2\) ↩︎

posted @ 2022-03-24 20:28  Higurashi-kagome  阅读(167)  评论(0编辑  收藏  举报