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

树是一种非线性数据结构,用于表示具有层次关系的数据

树是一种非线性数据结构,用于表示具有层次关系的数据。根据你提供的内容,以下是对相关概念的梳理与解释:

  1. 树的基本概念

    • 内部结点:除了叶子结点以外的所有非终端结点,即至少有一个子结点的结点(如示例中的 B、D)。
    • 结点层次:从根开始定义,根结点位于第 1 层,其子结点为第 2 层,依此类推,每一层比父层 +1。例如 A 在第 1 层,B、C、D 在第 2 层。
    • 树的高度:树中所有结点的最大层次数。若最大层次为 3,则树的高度为 3。
    • 有序树与无序树:如果子树之间的顺序有区别(如左、右不同),则称为有序树;否则为无序树。二叉树是典型的有序树。
  2. 二叉树的定义
    二叉树是一个有限结点集合,满足:

    • 空树(n = 0);
    • 或由一个根结点和两棵互不相交的左子树和右子树组成,且左右子树也均为二叉树(递归定义)。
  3. 二叉树与普通树的核心区别

区别点二叉树普通树
子树区分明确区分左、右子树(即使为空)不区分左右
结点最大度数最多有两个孩子(度 ≤ 2)度可以大于 2,无限制
  1. 二叉树的性质(节选)
    • 性质 1:在第 $ i $ 层上最多有 $ 2^{i-1} $ 个结点($ i \geq 1 $)。

      如第 3 层最多有 $ 2^{2} = 4 $ 个结点。

    • 性质 2:高度为 $ k $ 的二叉树最多有 $ 2^k - 1 $ 个结点($ k \geq 1 $)。

      这种情况出现在满二叉树中。


满二叉树(Full Binary Tree)
在一棵高度为 $ k $ 的二叉树中,如果所有层次上的结点数都达到最大值,即第 $ i $ 层有 $ 2^{i-1} $ 个结点($ 1 \leq i \leq k $),且总节点数为 $ 2^k - 1 $,则称为满二叉树。

满二叉树的特点是:每个内部结点都有两个子结点,叶子结点全部集中在最底层。

完全二叉树(Complete Binary Tree)
对于一棵高度为 $ k $ 的二叉树,如果其前 $ k-1 $ 层构成一个满二叉树,并且第 $ k $ 层的叶子结点从左到右连续分布(没有空缺),则称为完全二叉树。

完全二叉树允许最后一层不满,但必须“从左向右填满”,不能跳过位置。


主要区别:

特性满二叉树完全二叉树
定义要求所有层都完全填满前 $ k-1 $ 层满,最后一层左对齐
结点数量必须是 $ 2^k - 1 $可以是 $ n $,满足 $ 2^{k-1} \leq n < 2^k $
结构特点每个非叶结点都有两个孩子允许某些非叶结点只有一个孩子(只能是左孩子)
是否一定是完全二叉树否(例如:只有根和右孩子就不是完全二叉树)
应用场景较少直接应用堆(Heap)、优先队列常用结构

举例说明

  • 高度为 3 的满二叉树:
A / \ B C / \ / \ D E F G → 共 7 个结点(= 2³ - 1)
  • 高度为 3 的完全二叉树(非满):
A / \ B C / \ / D E F → 第三层从左开始连续,G 缺失也合法
  • 不是完全二叉树的例子:
A / \ B C / \ D E → 中间缺少F或G,右子树出现而左为空,不连续

http://www.rkmt.cn/news/188216.html

相关文章:

  • RocketMQ mqadmin 排查与模拟
  • YOLOv8训练教程:基于COCO8数据集的完整实践指南
  • YOLOv8镜像支持IPv6 DNS解析加速
  • YOLOv5到YOLOv8迁移指南:开发者必须掌握的升级路径
  • 找出数组中驻点和拐点
  • 代码漏洞藏隐患?Java安全防护神器,分钟级闭环修复
  • GLM-4.7编程环境10分钟搭建指南:3种官方配置方法,实测有效,一键即用!
  • YOLOv8如何实现旋转框检测功能?
  • YOLOv8训练时如何使用标签平滑Label Smoothing?
  • 揭秘R语言时间序列建模瓶颈:3步实现预测性能翻倍
  • YOLOv8镜像支持ARM架构处理器运行
  • YOLOv8镜像定期同步Ultralytics最新代码
  • 电子产品为什么要做FCC认证?
  • YOLOv8推理时如何实现动态批处理?
  • 论文解读-《Rethinking Graph Structure Learning in the Era of LLMs》 - zhang
  • 基于YOLO11的轨道交通车站客流密度实时监测与拥挤预警系统(数据集+UI界面+训练代码+数据分析)
  • 【高并发系统必看】:PHP跨域请求中的预检风暴与优化策略
  • YOLOv8推理时支持批量图像输入吗?
  • 突破传统监控:基于YOLO的人员异常行为检测与识别智能安防监控系统设计
  • 服务网格时代,PHP后端架构转型的3个生死抉择
  • 2025 国内细胞罐生产厂家推荐,哪个品牌好?上海保兴细胞罐实力厂家 - 品牌推荐大师
  • YOLOv8镜像集成Prometheus监控组件
  • 物品复活系统总结
  • 实验室 / 全自动 / 快速笼盒/ 玻璃器皿 / 便盆/医用污物 / 隧道式笼盒 / 饮水瓶清洗机生产厂家盘点:哪家口碑好、评价高值得选? - 品牌推荐大师1
  • YOLOv8模型量化为FP16后的精度变化
  • 构建企业级图像识别API:PHP+Python双引擎架构揭秘
  • 2026年找二次元影像测量仪靠谱供应商?这几家生产企业值得关注 - 品牌推荐大师1
  • YOLOv8模型部署到移动端的可行性分析
  • 为什么你的PHP图像识别接口延迟高?90%开发者忽略的底层机制
  • 日志分析效率提升80%,PHP异常检测必备的3种高级模式识别技巧