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

二叉树基础理论

二叉树基础理论

要点

  • 二叉树种类
  • 二叉树存储方式
  • 二叉树遍历方式
  • 二叉树定义

目录

  • 二叉树基础理论
    • 1. 二叉树种类
    • 2. 二叉树存储方式
      • 顺序存储
      • 链式存储
    • 3. 二叉树遍历方式
      • 前序遍历
      • 中序遍历
      • 后序遍历
      • 层序遍历

1. 二叉树种类

大体有如下四类:

  • 满二叉树:整棵树看起来像一个完美的金字塔,没有缺失的枝丫

  • 完全二叉树:这棵树除了最下面一层,上面几层都长得满满当当。而最下面一层,叶子从左到右依次排列,中间没有空缺,但右边可能缺几个。

  • 二叉搜索树:左边子树的所有值都比它小,右边子树的所有值都比它大

  • 平衡二叉搜索树:在二叉搜索树的基础上,它要求每个节点的左右子树高度差不超过1


2. 二叉树存储方式

顺序存储

把树上的节点按照“从上到下、从左到右”的顺序一个个放进格子里。

一般就是规整的 0 1 2 3 4 5 6

左孩子在下标 2*i + 1 的格子里。 右孩子在下标 2*i + 2 的格子里。 父节点在下标 (i-1) / 2 的格子里(计算机整数除法会自动取整)。

链式存储

链式存储中,二叉树本质就是链表。链表的next一分为二,变为左孩子和右孩子节点。

publicclassTreeNode{intval;TreeNodeleft;TreeNoderight;TreeNode(){}TreeNode(intval){this.val=val;}TreeNode(intval,TreeNodeleft,TreeNoderight){this.val=val;this.left=left;this.right=right;}}

3. 二叉树遍历方式

假设树长这样:

A / \ B C / \ \ D E F

前序遍历

  • 顺序:先看当前节点(根),然后去左边,最后去右边。(中左右

  • 遍历结果:A → B → D → E → C → F

  • 特点:深度优先,先处理自己,再处理孩子。常用于复制一棵树(先复制根,再复制左右)。

中序遍历

  • 顺序:先去左边,再看当前节点,最后去右边。(左中右

  • 遍历结果:D → B → E → A → C → F

  • 特点:深度优先,对于二叉搜索树,中序遍历得到升序序列。

后序遍历

  • 顺序:先去左边,再去右边,最后看当前节点。(左右中

  • 遍历结果:D → E → B → F → C → A

  • 特点:深度优先,常用于删除树(先删孩子,再删自己),或计算文件夹大小(先算子文件夹,再累加自己)。

层序遍历

  • 顺序:先访问第一层,再第二层,同一层从左到右。

  • 遍历结果:A → B → C → D → E → F

  • 特点:广度优先,就像扫描仪一样一层层扫过去。常用于寻找最短路径、判断树是否对称。

http://www.jsqmd.com/news/458116/

相关文章:

  • 2026年湖北蓄电池厂家选择:五大核心标准解析 - 2026年企业推荐榜
  • 10分钟吃透Linux基础:从概念到安装,运维入门零门槛(建议收藏)
  • 给大一自己的建议
  • Java开发者必看:K8s(Kubernetes)入门到实战,从概念到部署一步到位
  • 【IMM代码】非线性目标跟踪算法与MATLAB实现:基于粒子滤波的交互式多模型,结合CV和CT双模型对三维空间中的机动目标进行高精度跟踪。附完整代码
  • 外贸企业网站:从“线上名片”到“全球业务枢纽”的必然进化。
  • 探索Matlab在波束形成中的奇妙应用
  • 计算机毕业设计之django基于协同过滤的校园音乐推荐系统
  • 误删/格式化/清空回收站都能救:实操4招专业恢复删除的文件解决方案
  • 回顾的自语
  • 基于 DNV 与 CCS 规范的船舶异构通信网络高可用架构设计与底层实现
  • 2026年文献阅读工具选择指南:读懂生涩医学文献不再难
  • Gerrit使用简介
  • GA遗传算法优化ELM极限学习机(GA - ELM)回归预测在电厂运行数据中的应用
  • LCD 常用的客观效果指标和测试方法
  • 轻流用 AI 无代码重构制造企业产品全生命周期管理
  • 把团队规范也教给本地 Qwen3.5:让代码知识库同时懂“代码”和“规矩”(Ollama + RAG 进阶)
  • 2026最新宁夏沙漠婚纱照工作室推荐!银川优质摄影机构权威榜单发布 - 十大品牌榜
  • 从文档到知识图谱:基于 Ollama + RAG 的实体/关系自动抽取实战
  • 5.2 LangChain 与 Coze 平台实践:从链到智能体
  • SkyWalking 数据采集与传输全链路原理深度解析
  • OpenClaw大龙虾爆火!本地部署教程来了,别再咸鱼上花冤枉钱了!
  • iPad密码遗忘?无电脑也能轻松解锁!
  • 视频会议软件的私有化部署
  • Spring AI Advisor 拦截器体系:从日志到限流到安全审查
  • JavaScript 中 var、let、const 的核心区别与实战应用
  • 25 Byte Buddy 注解完全指南:让动态生成的类“骗”过 Spring 和 JUnit
  • 盒马鲜生卡使用和回收攻略:你不知道的隐藏功能大揭秘 - 团团收购物卡回收
  • 用conda命令对已有环境进行迁移
  • SpringBoot+Vue 本庄村果园预售系统平台完整项目源码+SQL脚本+接口文档【Java Web毕设】