c++数据结构8——二叉树的性质

article/2025/8/20 16:40:27

一、二叉树的基本性质

示图1:

性质1:层节点数上限

在一棵二叉树中,第i层至多有2^{i-1}个节点(首层是第1层)

这个性质可以通过数学归纳法证明:

  • 第1层:2^{1-1}=2^0=1个节点(根节点)

  • 第2层:2^{2-1}=2^1=2个节点

  • 第3层:2^{3-1}=2^2=4个节点

  • ...

  • 第k层:2^{k-1}个节点

例:示图1的第三层最多有4个节点。 

性质2:总结点数上限

深度为k的二叉树至多有2^k-1个节点

这是对性质1的求和结果:
S = 2^0 + 2^1 + 2^2 + ... + 2^{k-1} = 2^k - 1

例:示图1深度为4的二叉树最多有2^4-1=15个节点

性质3:叶子节点与度为2节点的关系

对任意二叉树,叶子节点数n_0和度为2的节点数n_2满足:n_0 = n_2 + 1

证明:

设:

  • n:总结点数

  • n_0:叶子节点数(度为0)

  • n_1:度为1的节点数

  • n_2:度为2的节点数

则有:

  1. n = n_0 + n_1 + n_2(节点分类)

  2. 从边的角度:树的总边数= n - 1

  3. 这些边由度为1和度为2的节点产生:n - 1 = n_1 + 2n_2

联立两个方程:
n_0 + n_1 + n_2 = n_1 + 2n_2 + 1
简化得:
n_0 = n_2 + 1

练习:

已知一棵二叉树有10个节点,则其中至多有( )个节点有2个子节点
A. 4 B. 5 C. 6 D. 7

解答
n = n_0 + n_1 + n_2 = 10
由性质3:n_0 = n_2 + 1
代入得:(n_2 + 1) + n_1 + n_2 = 10 → 2n_2 + n_1 = 9
要使n_2最大,则n_1应最小,且n_1必须是奇数(因为2n_2是偶数,9是奇数)
取n_1 = 1,则2n_2 = 8,$n_2 = 4
答案为A

二、特殊二叉树及其性质

1. 满二叉树

定义:每一层的节点数都达到最大值的二叉树

特点

  • 深度为k的满二叉树有2^k-1个节点

  • 所有叶子节点都在最底层

编号性质(按层序编号,根节点为1):

  • 节点i的父节点编号: i/2 

  • 节点i的左孩子编号:2i

  • 节点i的右孩子编号:2i+1

示图:

2. 完全二叉树

示图:

定义:如果有个二叉树(右边),按照从上到下从左到右的次序对每个结点进行顺序编号,编号为i的结点和满二叉树中编号为i的结点在二叉树中位置相同,则这个二叉树称为完全二叉树。

如何把满二叉树变成完全二叉树?

把一棵满二叉树,从最下层开始,自右向左(连续,不可跳跃)剪掉若干个结点,得到的就是一棵完全二叉树

性质1(深度计算):n个节点的完全二叉树,如果满足 2^{k-1}≤n<2^k,则深度为k

性质2(节点关系)

  • 若i=1,则为根节点(无父节点)

  • 若i>1,则父节点编号为 i/2 

  • 若2i > n,则无左孩子,更没有右孩子

  • 若 i 结点有左孩子,则左孩子为2i

  • 若 i 结点有右孩子,则其右孩子的编号为2i+1

三、典型例题解析

例题1

题目:一棵二叉树如图所示,若采用顺序存储结构,即用一维数组元素存储该二叉树中的结点(根结点的下标为1,若某结点的下标为i ,则其左孩子位于下标2i处、右孩子位于下标2i+l处),则该数组的最大下标至少为( )


A. 6 B. 10 C. 15 D. 12

解析:答案c,完全二叉树的根据性质1可得。

例题2

题目:根节点深度为 0,一棵深度为 h 的满 k(k>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有 k 个子结点的树,共有( )个结点。
A. (k^{h+1}-1)/(k-1) B. k^h-1 C. k^h D. (k^h-1)/(k-1)

解析
深度为h(根深度0),实际有h+1层。
节点数求和:S = k^0 + k^1 + ... + k^h = {k^{h+1}-1}{k-1}
答案为A

例题3

题目:根高度为1,61个节点的完全二叉树高度为( )(2015-17)
A. 5 B. 6 C. 7 D. 8

解析
设高度为h,则满足:2^{h-1} - 1 < 61 < 2^h - 1
计算可得h=6
答案为B

例题4

题目:5层满二叉树的节点数为( )(2014-16)
A. 31 B. 32 C. 33 D. 16

解析
2^5 - 1 = 31,答案为A

例题5

题目:2015个节点的二叉树最多有( )个叶子节点(2015-22)

解析
设叶子节点数为n_0,度为2的节点数为n_2
由性质3:n_0 = n_2 + 1
总结点数:n_0 + n_1 + n_2 = 2015
代入得:(n_2+1) + n_1 + n_2 = 2015→ 2n_2 + n_1 = 2014
要使n_0最大,需n_2最大,则n_1最小(取0)
2n_2 = 2014 → n_2 = 1007→ n_0 = 1008

四、总结与思考

二叉树的性质揭示了树形结构的数学规律:

  1. 层节点数:指数级增长(性质1)

  2. 叶-枝关系:叶子数总比二度节点多1(性质3)

  3. 完全二叉树:高效存储的基础(数组表示)

  4. 满二叉树:理想平衡状态

实际应用:

  • 二叉堆(优先队列):基于完全二叉树

  • 哈夫曼编码:基于最优二叉树

  • 数据库索引:B/B+树的基础

思考题
在一棵完全二叉树中,编号为i和j的两个节点的最近公共祖先(LCA)编号如何计算?
(提示:利用完全二叉树的编号性质,不断除以2比较)


http://www.hkcw.cn/article/MRWkxudTKS.shtml

相关文章

搭建frp内网穿透

前言 内网穿透的原理我就不多说了哈&#xff0c;既然会看到我这篇文章&#xff0c;想必都知道内网穿透是做什么的吧 frp分为服务端和客户端&#xff0c;服务端一般是搭在公网服务器中&#xff0c;客户端一般搭在本地或者局域网&#xff0c;需要提前在服务端搭好ftp server&am…

阿里云服务器ECS详细购买流程【新手购买手册】

1、打开云服务器ECS官方页面 打开阿里云服务器ECS页面 点击进入阿里云服务器 2、付费类型选择 阿里云服务器付费类型 3、地域节点 阿里云服务器全球28个地域&#xff0c;中国大陆地域如华北2&#xff08;北京&#xff09;、华东1&#xff08;杭州&#xff09;、华南1&#x…

广东虎门通报小车坠桥5人死亡 事故引发广泛关注

广东虎门通报小车坠桥5人死亡 事故引发广泛关注。近日,广东东莞环莞快速路虎门段发生了一起交通事故,引起了广泛关注。5月29日晚,虎门镇“519”事故工作专班发布了情况通报。广东虎门通报小车坠桥5人死亡 事故引发广泛关注。责任编辑:0882

SpringBoot:统一功能处理、拦截器、适配器模式

文章目录 拦截器什么是拦截器&#xff1f;为什么要使用拦截器&#xff1f;拦截器的使用拦截路径执行流程典型应用场景DispatcherServlet源码分析 适配器模式适配器模式定义适配器模式角色适配器模式的实现适配器模式应用场景 统⼀数据返回格式优点 统一处理异常总结 拦截器 什…

Spring Boot 3.5.0中文文档上线

Spring Boot 3.5.0 中文文档翻译完成&#xff0c;需要的可收藏 传送门&#xff1a;Spring Boot 3.5.0 中文文档

67常用控件_QTreeWidget的使用

目录 代码⽰例: 使⽤ QTreeWidget 使⽤ QTreeWidget 表⽰⼀个树形控件. ⾥⾯的每个元素, 都是⼀个 QTreeWidgetItem , 每个 QTreeWidgetItem 可以包含多个⽂本和图标, 每个⽂本/图标为⼀个 列. 可以给 QTreeWidget 设置顶层节点(顶层节点可以有多个), 然后再给顶层节点…

气象大模型如何影响端午节旅行?精准预报助力安全出行

端午节假期(5月31日至6月2日)即将到来,全国天气形势复杂多样,北方晴热多风,南方暴雨频繁,华南则面临高温闷热。在这一背景下,气象大模型(如中央气象台的“疾风模型”等)凭借其强大的数据分析和预测能力,为公众出行提供了更精准的天气参考,直接影响着旅行决策和安全保…

德约连续20年晋级法网32强 连胜纪录延续

北京时间5月30日,在2025年法国网球公开赛男单第二轮比赛中,6号种子德约科维奇以6-3、6-2、7-6(1)战胜本土选手穆泰,成功晋级32强。比赛持续了3小时5分钟,第三盘中德约科维奇一度因左脚不适申请医疗暂停,该盘耗时超过80分钟。这场胜利使德约科维奇在罗兰加洛斯的连胜纪录达…

马图伊迪希望大巴黎欧冠夺冠 加油巴黎!

巴黎圣日耳曼旧将马图伊迪在社交媒体上表达了对母队夺得欧冠冠军的期待。北京时间6月1日凌晨3点,巴黎圣日耳曼将与国际米兰争夺本赛季的欧冠冠军。马图伊迪表示,本周六巴黎圣日耳曼带着历史使命踏上赛场,相信整个法国都会支持球队,因为他们有机会成就一些特别的事情。他提到…

茅台铁粉基金经理转战泡泡玛特!

茅台铁粉基金经理转战泡泡玛特。随着在港交所挂牌的泡泡玛特凭借爆款IP上演“股价超十倍神话”,不少曾经重仓持有贵州茅台的“铁粉”基金经理,相继“转战”泡泡玛特。与此同时,众多基金经理开始迫切寻找能复制泡泡玛特神话的新消费标的。市场没有让人失望。近期,A股、港股市…

曝利雅得胜利欲引进迪亚斯 利物浦边锋成头号目标

利雅得胜利将利物浦边锋路易斯-迪亚斯视为今夏引援头号目标。利物浦方面已经了解到对方的兴趣,而迪亚斯本人则希望与红军续约。2022年1月,利物浦以3750万镑转会费从波尔图引进了迪亚斯,并与其签约六年。由于在2024-25赛季表现出色,迪亚斯吸引了多家俱乐部的关注。这位28岁的…

electron安装报错处理

electron安装报错 解决方法&#xff1a; 修改 C:\Users\用户名.npmrc下配置文件 添加代码 electron_mirrorhttps://cdn.npmmirror.com/binaries/electron/ electron_builder_binaries_mirrorhttps://npmmirror.com/mirrors/electron-builder-binaries/最后代码 registryhtt…

力扣刷题Day 63:组合总和(39)

1.题目描述 2.思路 Krahets佬一图胜千言&#xff1a; 按这张图来的话输出结果将是[[3, 3, 3], [4, 5], [5, 4]]&#xff0c;而[4, 5]和[5, 4]实际是重复的&#xff0c;因此需要在搜索过程中剪枝&#xff0c;剪枝策略是&#xff1a;保证搜索过程中选择序列里的元素索引是递增的…

智能穿戴新标杆:SD NAND (贴片式SD卡)与 SOC 如何定义 AI 眼镜未来技术路径

目录 一、SD NAND&#xff1a;智能眼镜的“记忆中枢”突破空间限制的存储革命性能与可靠性的双重保障 二、SOC芯片&#xff1a;AI眼镜的“智慧大脑”从性能到能效的全面跃升多模态交互的底层支撑 三、SD NANDSOC&#xff1a;11&#xff1e;2的协同效应数据流水线的高效协同端侧…

人类社会关系的重要组成要素--共识机制

共识机制是人类社会的重要组成&#xff0c;它不仅是群体协作的基础&#xff0c;更是维系社会秩序、推动发展的核心动力。 一、共识机制的本质与必要性 协作前提 共识是群体成员对规则、目标或价值观的共同认可&#xff0c;这一机制使个体行为从分散走向协同。例如&#xff0c;蚂…

python 包管理工具uv

uv --version uv python find uv python list export UV_DEFAULT_INDEX"https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple" # 换成私有的repo export UV_HTTP_TIMEOUT120 uv python install 3.12 uv venv myenv --python 3.12 --seed uvhttps://docs.ast…

eNSP企业综合网络设计拓扑图

1.拓扑图 2.拓扑配置 此拓扑还有一些瑕疵&#xff0c;仅做参考和技术提升使用。 想要配置的可以关注下载 大型网络综合实验拓扑图&#xff08;eNSP&#xff09;资源-CSDN文库

2024年全国十大最美农村路发布 哪条最让你心动

日前,交通运输部发布2024年“十大最美农村路”。截至2024年底,全国农村公路总里程超464万公里。2024年“十大最美农村路”分别是:河北省沧州市大运河堤顶路浙江省杭州市余杭区漕雅线江西省南昌市南昌县湾庄路山东省枣庄市台儿庄区“鲁风运河”古城文化廊道湖北省宜昌市宜都市…

深蓝汽车CEO认错道歉 改进服务保证体验

深蓝汽车官方和CEO邓承浩就车机广告争议公开致歉。5月27日晚,深蓝汽车在社交平台上表示,部分车主反映车机系统开屏的权益提醒信息影响了用车体验,对此公司深表歉意。官方解释称,此次推送权益信息是为了感恩回馈深蓝车主,提醒已购首任车主查收深蓝S09专属购车券。由于发现很…

虚拟机ubuntu无法连接,解决方法

1.点击系统右上角网络连接图标&#xff0c;进入到网络设置。 2.点击连接栏&#xff0c;右边的齿轮。在IPV4栏&#xff0c;选择“自动&#xff08;DHCP&#xff09;”