当前位置: 首页 > 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.jsqmd.com/news/172367/

相关文章:

  • 【组合导航】全球导航卫星系统、惯性及多传感器组合导航系统原理附matlab代码
  • RocketMQ mqadmin 排查与模拟
  • 基于 Sora2 API 的视频生成实践:提示词写法与生成过程记录
  • YOLOv8训练日志分析技巧,精准定位模型性能瓶颈
  • 测试伺服
  • YOLOv8训练教程:基于COCO8数据集的完整实践指南
  • YOLOv8如何替换主干网络?自定义Backbone教程
  • **存储方式**:使用数组按层次遍历顺序(自上而下、自左至右)存放结点,适用于**完全二叉树**
  • 2025年末集装箱办公直销大揭秘!口碑厂家榜来袭,集装箱改造/集成房屋设计/集装箱住宿,集装箱办公生产公司有哪些 - 品牌推荐师
  • YOLOv8镜像支持IPv6 DNS解析加速
  • YOLOv8推理时如何处理极端光照条件?
  • YOLOv8 SPPF模块作用机制详解
  • 开通chatgpt-教师计划以及gemini学生套餐
  • YOLOv8实战教程:如何在GPU环境下快速部署目标检测模型
  • YOLOv8推理时如何指定使用哪块GPU?
  • 飞算科技,打破Java开发困局!
  • YOLOv5到YOLOv8迁移指南:开发者必须掌握的升级路径
  • 【预测模型调优终极指南】:基于R语言的7种高效优化策略
  • YOLOv8目标检测实战:如何加载yolov8n.pt预训练权重
  • 找出数组中驻点和拐点
  • Day73(10)-F:\硕士阶段\Java\课程资料\1、黑马程序员Java项目《苍穹外卖》企业级开发实战\sky-take-out
  • five hundred miles
  • 编译错误反复踩坑?这款Java自动修复引擎,本地环境精准适配一次搞定
  • 【R语言时间序列预测优化】:掌握5大核心技巧提升模型精度
  • 【稀缺资源】PHP低代码平台插件开发内部文档流出(仅限前1000人下载)
  • 2026 公众号矩阵跨平台适配 TOP1:广州旗引科技奇码云覆盖全场景 - 品牌推荐官优选
  • YOLOv8在野生动物迁徙研究中的应用
  • YOLOv8训练时数据增强策略分析
  • 2025副业新风口:养一只“机器人”,比养猪还稳?
  • 深度学习框架如何训练 智慧工地 无人机航拍反光衣背心头盔穿戴检测数据集 工地安全施工积水检测数据集 无人机工地积水数据集 无人机建筑施工安全智能化监管 (1)