关于二叉树
二叉树
满二叉树
一颗深度为 \(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\)。
简化这个表达式:
这正是我们需要的公式。因此,通过数学归纳法,我们证明了对于任意高度 \(h\) 的满二叉树,其节点数 \(n\) 都满足 $ n = 2^h - 1$。
完全二叉树
完全二叉树 : 深度为 \(k\) 的,有 \(n\) 个结点的二叉树,当且仅当其每一个结点都与深度为 \(k\) 的满二叉树中编号从 \(1\) 至 \(n\) 的结点一一对应 (特点: 至多只有最下面两层的结点的度可以小于 \(2\), 且倒二层如果只有一个孩子,那必是左孩子。)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话