关于二叉树

二叉树

满二叉树

一颗深度为 \(k\) 且有 \(2^k-1\) 个节点的二叉树,每一层上的检点树都是最大值。

每层节点数量

第一层:\(2^{1-1}\) 个点,即 \(2^0 = 1\) 个点。
第二层:\(2^{2-1}\) 个点,即 \(2^1 = 2\) 个点。
第三层:\(2^{3-1}\) 个点,即 \(2^2 = 4\) 个点。
\(i\) 层:\(2^{i-1}\) 个点。

一共点的数量

深度为 \(h\)\(2^k-1\) 个节点。

证明

基础情况:当 \(h = 1\) 时,满二叉树只有一个节点(根节点),即 \(n = 2^1 - 1 = 1\) 。这是正确的,因为只有一个节点。

归纳假设:假设对于所有高度小于 \(h\) 的满二叉树,节点数公式都是正确的,即对于任意 \(k < h\),有 \(n = 2^k - 1\)

归纳步骤:现在我们需要证明当 \(h = k + 1\) 时,公式也成立。对于高度为 \(h = k + 1\) 的满二叉树,我们可以将其看作是两个高度为 \(k\) 的满二叉树的根节点连接而成。每个高度为 \(k\) 的满二叉树有 \(2^k - 1\) 个节点。

因此,高度为 \(h = k + 1\) 的满二叉树的总节点数 \(n\) 可以表示为:

$ n = (2^k - 1) + (2^k - 1) + 1 $

因为根节点有两个子树,每个子树有 \(2^k - 1\) 个节点,再加上根节点本身,所以总节点数是 \(2 \times (2^k - 1) + 1\)

简化这个表达式:

\[n = 2 \times 2^k - 2 + 1\\ n = 2^{k+1} - 1 \]

这正是我们需要的公式。因此,通过数学归纳法,我们证明了对于任意高度 \(h\) 的满二叉树,其节点数 \(n\) 都满足 $ n = 2^h - 1$。

完全二叉树

完全二叉树 : 深度为 \(k\) 的,有 \(n\) 个结点的二叉树,当且仅当其每一个结点都与深度为 \(k\) 的满二叉树中编号从 \(1\)\(n\) 的结点一一对应 (特点: 至多只有最下面两层的结点的度可以小于 \(2\), 且倒二层如果只有一个孩子,那必是左孩子。)

posted @   ACyming  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示