当前位置: 首页 > article >正文

【数据结构】二叉树入门全解:从定义、性质到经典真题

一、先搞懂什么是二叉树二叉树Binary Tree是一种特殊的树形结构定义非常清晰它是由nn≥0个结点构成的有限集合满足空树当n0时二叉树为空非空树有且仅有一个根结点除根结点外其余结点分为两个互不相交的子集T₁和T₂分别称为根的左子树和右子树且T₁、T₂本身也是二叉树。核心特点每个结点最多只有 2 棵子树即度最大为 2子树有严格的左右之分顺序不能颠倒左子树和右子树是完全不同的两棵树。二叉树的 5 种基本形态二叉树的结构非常灵活基础形态只有 5 种空二叉树仅有根结点右子树为空只有左子树左子树为空只有右子树左右子树均非空二、二叉树的核心性质解题的 “万能公式”掌握这些性质是解决所有二叉树问题的基础也是考试的核心考点性质 1第 i 层的最大结点数二叉树的第i层根为第 1 层最多有2^(i-1)个结点。验证第 1 层根2^01第 2 层最多 2 个第 3 层最多 4 个完全符合满二叉树的结构。性质 2深度为 k 的二叉树最大结点数深度为k的二叉树最多有2^k - 1个结点。本质等比数列求和124...2^(k-1) 2^k - 1对应满二叉树的结点总数。性质 3叶子结点与度为 2 的结点的关系对于任意非空二叉树若叶子结点数为n₀度为 2 的结点数为n₂则恒有n₀ n₂ 1推导设总结点数为n度为 1 的结点数为n₁则n n₀ n₁ n₂又因为二叉树的边数 总结点数 - 1 n-1同时边数也等于n₁ 2n₂度为 1 的结点贡献 1 条边度为 2 的贡献 2 条联立得n₀ n₁ n₂ - 1 n₁ 2n₂化简后n₀ n₂ 1完美成立。三、特殊二叉树满二叉树 完全二叉树这两种是考试中最常考的二叉树类型必须彻底分清1. 满二叉树定义深度为k且结点总数为2^k - 1的二叉树。特点所有叶子结点都在最后一层除叶子结点外每个结点都有 2 个子结点同深度下满二叉树的结点数、叶子数都是最多的按层序编号根为 1从上到下、从左到右编号为i的结点左孩子为2i右孩子为2i1父结点为⌊i/2⌋。2. 完全二叉树定义深度为k、有n个结点的二叉树当且仅当它的每个结点都与深度为k的满二叉树中编号从1到n的结点一一对应时称为完全二叉树。核心特点判断依据叶子结点只可能出现在最后两层若某结点没有左子树则一定没有右子树上一层没有铺满绝对不能有下一层结点对任意结点若其右分支子孙的最大层次为l则左分支子孙的最大层次必为l或l1。完全二叉树的专属性质解题神器性质 4完全二叉树的深度有n个结点的完全二叉树深度为⌊log₂n⌋ 1向下取整后 1。性质 5层序编号的父子关系对n个结点的完全二叉树按层序编号根为 1每层从左到右对任意结点i1≤i≤n若i1结点i是根无父结点若i1父结点编号为⌊i/2⌋若2i n结点i无左孩子是叶子结点否则左孩子为2i若2i1 n结点i无右孩子否则右孩子为2i1。四、经典真题实战把性质用起来我们结合 3 道历年考研真题手把手教你用性质解题彻底吃透考点。真题 12009完全二叉树结点数最大值题目已知一棵完全二叉树的第 6 层根为第 1 层有 8 个叶结点则该完全二叉树的结点个数最多是 A. 39 B. 52 C. 111 D. 119解题步骤分析结构完全二叉树的叶子结点只能在最后两层因此第 6 层有 8 个叶子说明树的深度有两种可能深度为 6或深度为 7要结点数最多必然取深度 7。计算前 5 层满二叉树的结点数深度为 5 的满二叉树结点总数为2^5 - 1 31个。计算第 6 层的结点数第 6 层最多有2^(6-1) 32个结点。其中 8 个是叶子结点说明剩下32 - 8 24个结点是非叶子结点有子结点。计算第 7 层的最大结点数第 6 层的 24 个非叶子结点每个最多有 2 个子结点因此第 7 层最多有24 × 2 48个结点。总结点数前 5 层 31 第 6 层 32 第 7 层 48 111对应选项 C。真题 22011完全二叉树的叶子结点数题目若一棵完全二叉树有 768 个结点则该二叉树中叶结点的个数是 A. 257 B. 258 C. 384 D. 385解题步骤方法 1利用性质 3 完全二叉树的特点完全二叉树中度为 1 的结点数n₁只能是 0 或 1这是完全二叉树的核心特点。设叶子结点数为n₀度为 2 的结点数为n₂则总结点数n n₀ n₁ n₂ 768由性质 3n₀ n₂ 1→n₂ n₀ - 1代入得n₀ n₁ (n₀ - 1) 768→2n₀ n₁ 769因为2n₀是偶数769 是奇数所以n₁必须为 1奇数才能让等式成立。因此2n₀ 1 769→n₀ 384对应选项 C。方法 2利用完全二叉树层序编号性质完全二叉树的叶子结点是编号大于⌊n/2⌋的所有结点。n768⌊768/2⌋ 384因此叶子结点是编号 385~768共768 - 384 384个直接得出答案。真题 32018满二叉树的结点总数题目设一棵非空完全二叉树 T 的所有叶结点均位于同一层且每个非叶结点都有 2 个子结点。若 T 有 k 个叶结点则 T 的结点总数是 A. 2k-1 B. 2k C. k² D. 2^k-1解题步骤分析树的类型所有叶结点在同一层且每个非叶结点都有 2 个子结点 → 这是一棵满二叉树。满二叉树中叶子结点数n₀ k由性质 3n₀ n₂ 1得度为 2 的结点数n₂ k - 1。满二叉树中没有度为 1 的结点n₁0因此总结点数n n₀ n₁ n₂ k 0 (k-1) 2k - 1对应选项 A。补充验证深度为 h 的满二叉树叶子数k2^(h-1)总结点数2^h - 1 2×2^(h-1) - 1 2k - 1完全一致。五、总结二叉树核心考点速记表格知识点核心公式 / 结论二叉树性质 3n₀ n₂ 1所有二叉树通用满二叉树深度 k结点数2^k - 1叶子数2^(k-1)总结点数2×叶子数 - 1完全二叉树度为 1 的结点数只能是 0 或 1叶子结点为编号 ⌊n/2⌋的结点深度⌊log₂n⌋1完全二叉树父子关系父结点⌊i/2⌋左孩子2i右孩子2i1二

相关文章:

【数据结构】二叉树入门全解:从定义、性质到经典真题

一、先搞懂:什么是二叉树?二叉树(Binary Tree)是一种特殊的树形结构,定义非常清晰:它是由 n(n≥0) 个结点构成的有限集合,满足:空树:当 n0 时&…...

3个简单技巧让YOLO小目标检测精度提升50%:Ultralytics实战指南

3个简单技巧让YOLO小目标检测精度提升50%:Ultralytics实战指南 【免费下载链接】ultralytics Ultralytics YOLO 🚀 项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics 你是否在为监控视频中远处行人检测不准而烦恼?工业质…...

从‘数值灾难’到平稳训练:深入浅出聊聊MoE中路由Z-loss的设计哲学

从‘数值灾难’到平稳训练:深入浅出聊聊MoE中路由Z-loss的设计哲学 想象一下,你正在指挥一个由数百名专家组成的交响乐团。每位音乐家都技艺精湛,但如果在演奏时某个乐器的音量突然爆表(比如小号手过于兴奋)&#xff…...

一码一物的生成软件,为什么总能先把窜货和返利黑洞堵住?

一码一物的生成软件,为什么总能先把窜货和返利黑洞堵住?很多老板嘴上说生意难做,真把账摊开看,难的不是卖不出去,而是货卖到哪儿不知道、钱花给谁不清楚、促销有没有真拉动更说不明白。一码一物的生成软件,…...

TDEFNODE 安装与入门:从源码编译到成功跑通案例(超详细避坑指南)

TDEFNODE 安装与入门:从源码编译到成功跑通案例(超详细避坑指南) 一、前言 TDEFNODE 是一个用于地壳形变建模的经典科研程序,常用于 GNSS 速度场反演、块体运动分析以及断层滑动研究。 但与常见软件不同:TDEFNODE 不是…...

OpenClaw开发环境配置:千问3.5-9B辅助的IDE插件管理

OpenClaw开发环境配置:千问3.5-9B辅助的IDE插件管理 1. 为什么需要AI辅助的IDE管理 作为一个长期在多个项目间切换的全栈开发者,我深受开发环境配置问题的困扰。每次换新电脑或者重装系统,光是配置VSCode插件和项目依赖就要耗费大半天时间。…...

五层电梯MCGS7.7嵌入版与三菱PLC的联动编程实践

5五层电梯MCGS7.7嵌入版和三菱PLC联机程序调试电梯控制程序最头疼的莫过于通讯不稳定。上个月刚搞完一个五层电梯项目,MCGS7.7触摸屏和三菱FX3U的联机调试过程简直像坐过山车——楼层显示乱跳、按钮状态丢失这些幺蛾子接踵而来。今天咱就唠唠这个项目的实战经验。硬…...

新一代高端工业 HMI 如何重塑现场交互体验?

繁易 FPADX 系列电容触摸屏支持 3D 可视化、多点触控、Web 远程访问与大型工程承载,帮助工业设备实现更高效、更直观、更智能的人机交互体验。在工业自动化持续升级的今天,触摸屏早已不再只是设备上的一个操作界面。对于设备制造商、系统集成商和终端工厂…...

第三方软件测评机构中CMA与CNAS资质对软件验收的重要性

CMA与CNAS资质的重要性 在软件项目验收过程中,第三方软件测评机构的CMA(中国计量认证)与CNAS(中国合格评定国家认可委员会)资质至关重要。这些资质不仅是机构专业能力的体现,更是确保测试结果公正、准确、可…...

2026 codex 大模型 api 配置指南:auth.json、config.toml 与 401/超时排查

当 codex --version 已经能正常输出,很多人会以为接下来只剩下提问和改代码。但真正决定 Codex 能不能顺利进入项目的,往往是 codex 大模型 api 有没有按要求接好:只要 auth.json、config.toml 或网关地址有一点偏差,就可能马上碰…...

告别窗口闪烁:用BLASTSyncEngine实现Android多窗口平滑过渡的完整指南

告别窗口闪烁:用BLASTSyncEngine实现Android多窗口平滑过渡的完整指南 在Android多窗口交互场景中,开发者经常面临一个棘手问题——当用户进行分屏切换、画中画调整或任务栈重组时,窗口内容会出现短暂闪烁或撕裂。这种视觉瑕疵不仅影响用户体…...

PagerDuty与NodeJS集成:构建高效监控告警系统的实践指南

1. 为什么需要PagerDuty与NodeJS集成? 在当今的互联网服务架构中,系统的稳定性和可用性至关重要。想象一下,如果你的电商网站在凌晨3点突然宕机,而整个团队都在熟睡中,这会导致多少订单流失?这就是监控告警…...

Python无锁并发避坑手册(20年C Python核心贡献者亲授:从字节码级锁定到原子内存序的17个致命盲区)

第一章:Python无锁并发的本质与GIL真相Python常被误认为“天生支持多线程并发”,但其核心限制源于全局解释器锁(Global Interpreter Lock, GIL)。GIL并非语言规范,而是CPython解释器为内存管理安全而引入的互斥机制——…...

电子元器件失效分析与预防实战指南

1. 电子元器件失效的底层逻辑剖析 电子元器件失效的本质是材料特性、环境应力与时间因素共同作用的结果。作为一名硬件工程师,我处理过数百例元器件失效案例,发现失效模式往往遵循"应力-损伤-失效"的因果链。理解这个链条,才能从根…...

Qclaw 效率工作流实战测评:让微信变成你的「远程生产力中枢」

一句微信消息,驱动电脑自动干活——这不是概念片,是我用了两周 Qclaw 后的真实体感。 一、Qclaw 是什么?30 秒讲清楚 qclaw Qclaw 是腾讯电脑管家团队出品的个人 AI Agent 工具,基于开源框架 OpenClaw 封装而成。核心逻辑用一句…...

HGD运动想象脑电数据集预处理实战:从数据加载到特征标准化

1. HGD数据集简介与下载指南 HGD(High Gamma Dataset)是目前运动想象脑电研究领域最常用的公开数据集之一,由德国柏林工业大学团队采集并开源。这个数据集包含了14名受试者在执行左手、右手、脚部和休息四种运动想象任务时的高密度脑电信号&a…...

ThinkLink+EdgeBus 将建大仁科的氧传感器接入到LoRaWAN系统

传统 RS485 传感器,也能快速接入 LoRaWAN 系统很多项目现场,其实已经部署了不少成熟可用的传感器。 问题往往不在于“传感器能不能测”,而在于:怎样把这些传统传感器,快速接入 LoRaWAN 和上层业务系统?以 R…...

深入解析pysim中的eUICC ISD-R命令:从基础操作到高级应用

1. eUICC ISD-R命令基础入门 第一次接触eUICC ISD-R命令时,我完全被那些专业术语搞晕了。经过几个项目的实战,我发现这些命令其实就像智能手机上的应用商店操作——只不过管理的是SIM卡上的应用。eUICC(嵌入式通用集成电路卡)是现…...

OpenClaw环境迁移:gemma-3-12b-it配置备份与恢复指南

OpenClaw环境迁移:gemma-3-12b-it配置备份与恢复指南 1. 为什么需要环境迁移方案 上周我的主力开发机突然硬盘故障,导致所有数据丢失。最让我头疼的不是代码仓库——它们都有远程备份,而是那套精心调校的OpenClawgemma-3-12b-it环境。花了整…...

雷军5小时拆车直播爆火!硬核技术成新风口,自媒体可直接做

4月2日晚,雷军5小时直播拆解新一代SU7引发全网热议,单场观看量突破1亿,弹幕满是“硬核”“专业”的好评。这场直播颠覆了技术内容的传播模式,从“参数堆砌”转向“实证拆解”,从“单向宣讲”升级为“双向互动”&#x…...

量子态可视化太难?用C++ + ImGUI实时渲染Bloch球+概率幅热力图(含跨平台编译脚本)

第一章:量子态可视化太难?用C ImGUI实时渲染Bloch球概率幅热力图(含跨平台编译脚本)量子计算教学与算法调试中,单量子比特态的几何表示——Bloch球——是理解叠加、相位与测量的核心工具;而复数概率幅的模…...

扩散模型对抗样本经典baselines

1. 流图:数据的河流 如果把传统的堆叠面积图想象成一块块整齐堆叠的积木,那么流图就像一条蜿蜒流淌的河流,河道的宽窄变化自然流畅,波峰波谷过渡平滑。 它特别适合展示多个类别数据随时间的变化趋势,尤其是当你想强调整…...

大规模模型训练卡在92%?PyTorch 3.0静态图分布式调试全流程:从Graph IR Dump到Device Placement热力图分析

第一章:PyTorch 3.0静态图分布式训练全景概览PyTorch 3.0 引入了原生静态图编译能力(TorchDynamo Inductor 后端深度集成),结合 torch.distributed 的增强型 SPMD(Single Program, Multiple Data)抽象&…...

嵌入式开发语言选择:C与C++的实战对比

1. 嵌入式开发语言选择的核心考量在嵌入式系统开发领域,C和C的争论已经持续了数十年。作为一名在工业控制和消费电子领域工作多年的嵌入式工程师,我见证了从8位单片机到多核处理器的演进过程。选择开发语言绝非简单的技术偏好问题,而是需要综…...

2026届毕业生推荐的十大降重复率神器解析与推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 降低AIGC痕迹的关键之处在于去除机器生成的那种模式化特性,如果要采用避免使用过…...

【全球首批C++27静态反射商用项目解密】:西门子PLC配置引擎重构实测——编译时间+12%,运行时内存下降93.7%

第一章:C27静态反射工业应用案例C27引入的静态反射(Static Reflection)核心特性——基于std::reflexpr与编译期元对象模型(Meta Object Model, MOM)——已进入关键工业验证阶段。多家汽车电子与工业控制厂商在AUTOSAR …...

Mac开发者必备:OpenClaw联动千问3.5-27B实现代码审查自动化

Mac开发者必备:OpenClaw联动千问3.5-27B实现代码审查自动化 1. 为什么需要代码审查自动化? 作为独立开发者,我经常面临一个尴尬局面:在深夜提交代码后,第二天才发现引入了低级语法错误或潜在漏洞。传统CI工具虽然能捕…...

数据科学家稳健统计系列第一部分:稳健的中心趋势度量以及...

原文:towardsdatascience.com/robust-statistics-for-data-scientists-part-1-resilient-measures-of-central-tendency-and-67e5a60b8bf1 https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/cf43c75d8b50af4d9c13df54abeccde8.pn…...

生产环境Python 3.14 JIT崩溃率突增400%?,资深SRE团队紧急封存的8个未公开__PyJIT_TraceConfig参数调优组合

第一章:Python 3.14 JIT 编译器性能调优生产环境部署全景图Python 3.14 引入的原生 JIT 编译器(代号 “PyJIT”)标志着 CPython 运行时架构的重大演进。它不再依赖外部工具链(如 Cython 或 Numba),而是以内…...

AI元人文:自感是什么?——一个跨学科的概念阐释

AI元人文:自感是什么?——一个跨学科的概念阐释摘要“自感”(Selbstgefhl)是一个横跨哲学、心理学、神经科学和人工智能研究的核心概念。它指向前反思的、非对象化的、身体嵌入的、与他者共在的鲜活体验——即我们在任何明确的自我…...