跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言算法

数据结构:树与堆

数据结构中树与堆的基础知识。内容包括树的定义、相关术语如度与层次;二叉树的分类(满二叉树、完全二叉树)及存储方式(顺序与链式);以及堆的定义与大根堆、小根堆的区别。旨在帮助读者理解树形结构的核心概念。

王者发布于 2026/3/29更新于 2026/10/25106 浏览

树概念及结构

树的概念

树是一种非线性的数据结构,它是由 n(n>=0)个有限结点组成一个具有层次关系的集合。除根结点外,其余结点被分成 M(M>0) 个互不相交的集合 T1、T2、……、Tm,其中每一个集合 Ti(1<= i <= m) 又是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有 0 个或多个后继。

因此,树是递归定义的。 注意:树形结构中,子树之间不能有交集,否则就不是树形结构

树的相关概念

结点的度:一个结点含有的子树的个数称为该结点的度;叶结点或终端结点:度为 0 的结点称为叶结点;非终端结点或分支结点:度不为 0 的结点;双亲结点或父结点:若一个结点含有子结点,则这个结点称为其子结点的父结点;孩子结点或子结点:一个结点含有的子树的根结点称为该结点的子结点;兄弟结点:具有相同父结点的结点互称为兄弟结点;树的度:一棵树中,最大的结点的度称为树的度;结点的层次:从根开始定义起,根为第 1 层,根的子结点为第 2 层,以此类推;树的高度或深度:树中结点的最大层次;森林:由 m(m>0)棵互不相交的树的集合称为森林;

二叉树的基本概念与定义

概念

  • 每个节点最多有两个子节点的特性
  • 常见术语解释:根节点、叶子节点、子树、深度、高度等。

二叉树的常见类型

满二叉树,完全二叉树

文章配图

文章配图

满二叉树是一个父节点都有两个子节点,高度为 h,最下面一层为叶子节点,数量为 2^h-1。

完全二叉树不全满,节点数量 [2^(h-1), 2^h-1]

二叉树的存储方式
顺序存储(数组表示)

顺序结构存储就是使用数组来存储,一般使用数组只适合表示完全二叉树,所以完全二叉树会有空间的浪费。而现实中使用中只有堆才会使用数组来存储。

文章配图

链式存储(节点结构体/类)

二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来指示元素的逻辑关系。通常的方法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所在的链结点的存储地址。链式结构又分为二叉链和三叉链,红黑树等会用到三叉链。

文章配图

堆(一种二叉树)

堆的概念

已知一个集合里的元素,将其按照完全二叉树的格式储存起来,其中根节点最大的堆为大根堆,根节点最小的堆为小根堆。所有元素按完全二叉树的顺序储存在一维数组中,堆中的某个节点总是不大于或者不小于父节点的值。

小根堆与大根堆

文章配图

逻辑结构与物理结构

目录

  1. 树概念及结构
  2. 树的概念
  3. 树的相关概念
  4. 二叉树的基本概念与定义
  5. 概念
  6. 二叉树的常见类型
  7. 满二叉树,完全二叉树
  8. 二叉树的存储方式
  9. 顺序存储(数组表示)
  10. 链式存储(节点结构体/类)
  11. 堆(一种二叉树)
  12. 堆的概念
  13. 小根堆与大根堆
  14. 逻辑结构与物理结构

更多推荐文章

查看全部
  • MySQL 权限管理与 C/C++ 开发对接指南
  • 规范驱动编程:AI 工具 Kiro 前端验证及调整实测
  • 大模型在机器视觉行业的落地路径
  • Web 扫雷游戏项目实现与说明
  • Visual C++ 运行库修复工具使用指南
  • Spring Boot 事件机制详解:原理与示例
  • Spring Boot 核心模块详解:12 个关键组件功能分析
  • 渗透测试入门指南:定义、策略与方法
  • AIGC 内容创作全流程解析:从文字到视频的智能生成
  • Python SQLAlchemy ORM 数据库操作指南
  • FPGA SPI Flash配置模式:硬件设计与约束文件协作
  • 如何提升自身 WEB 渗透能力?
  • C++ 多线程同步之条件变量实战
  • Java 实现决策树算法:从原理到代码实战
  • GitHub Copilot 学生认证申请流程与材料准备
  • 利用 AI 技能实现营销视频脚本自动化生成
  • 在 Cursor 中配置与使用 MCP 服务
  • Qwen-Image-Edit-2511-Multiple-Angles LoRA 多角度 AI 图像生成指南
  • FAST-LIVO2 算法解析与实战(一):多传感器融合 SLAM 核心原理
  • 排序算法详解:直接插入、希尔与选择排序原理及实现

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online