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

Day20-二叉树基础知识

二叉树(Binary Tree)是一种每个节点最多有两个子节点的树形数据结构,这两个子节点分别称为左子节点右子节点。二叉树是计算机科学中最基础、最常用的树结构之一,广泛应用于搜索、排序、表达式解析等领域!

核心特点

  1. 节点结构
    每个节点包含三部分:

    • 数据域(存储值)

    • 左指针(指向左子节点)

    • 右指针(指向右子节点)

  2. 递归定义
    二叉树可以是:

    • 空树(无节点),或

    • 根节点 + 左子树(二叉树) + 右子树(二叉树)

  3. 子树有序性
    左右子树的顺序不能颠倒(即使只有一个子节点,也需明确是左还是右)。

 

  • 节点1是根,2和3是1的左右子节点。

  • 节点2的左子节点是4,右子节点是5。

  • 节点4和5是叶子节点(无子节点)。

到这应该了解了什么是二叉树了,然后再介绍几个基础二叉树的类型。

1.满二叉树

可以这么理解:一棵二叉树是满二叉树,当且仅当每个节点要么是叶子节点,要么恰好有两个子节点。

若满二叉树的高度为h,则节点总数为2^h-1;

2.完全二叉树

定义:

一棵二叉树是完全二叉树,当且仅当:

  • 除最后一层外,所有层都被完全填满(即达到最大节点数),且

  • 最后一层的所有节点都连续集中在左侧(中间不能有空缺)这个很重要!

       

        ×

3.二叉搜索树

又称二叉查找树二叉排序树,是一种节点值有序排列的特殊二叉树,支持高效的动态查找、插入和删除操作。

二叉搜索树满足以下递归性质

  1. 左子树中所有节点的值小于当前节点的值

  2. 右子树中所有节点的值**大于(或等于)**当前节点的值;

  3. 每个节点的左、右子树本身也是二叉搜索树

  4. 一般不允许重复值(可根据具体实现决定)。

假设要查找7:

  • 从根 8 开始,7 < 8 → 走左子树;

  • 到节点 37 > 3 → 走右子树;

  • 到节点 67 > 6 → 走右子树;

  • 找到 7,查找成功。

应用场景

  • 动态集合的查找(如C++ STL的setmap

  • 数据库索引(B+树是BST的扩展)

  • 表达式求值与符号表管理

二叉搜索树 = 二分查找思想 + 二叉树结构,既支持高效查找,又能动态维护数据,但必须注意保持平衡以避免性能退化。

4.平衡二叉搜索树(红黑树)

这个和二叉搜索树就多了一个“平衡”,它首先满足二叉搜索树的所有性质。

平衡体现在哪里呢?任意节点的左右子树高度差 ≤ 1

实际应用:

  • 数据库索引:AVL树和红黑树用于实现内存索引

  • 动态排序:AVL树可实时维护有序数据;

  • 优先队列红黑树实现高效插入/删除的优先队列

平衡二叉搜索树 = 二叉搜索树 + 自动平衡机制,通过牺牲少量维护成本,换取稳定的 O(log n) 性能,是高性能存储与检索的核心数据结构

就简单记一下,更详细的版本去看代码随想录

http://www.dtcms.com/a/292926.html

相关文章:

  • python flusk 监控
  • 行业分类表sql
  • 深入解析 Spark:关键问题与答案汇总
  • 力扣刷题 -- 572.另一颗树的子树
  • 逻辑回归全景解析:从数学本质到工业级优化
  • docker 设置镜像仓库代理
  • 企业微信会议室智能预约实战:从线上预约到无钥匙开门
  • 企业微信快捷回复设定方法(提高效率)
  • 数据库事务 ACID
  • 洛谷 单词方阵 dfs
  • 免费实验室记录本:生物医药科研的数字化转型基石
  • Docker,其他机器下载镜像并copy到目标机器导入docker镜像
  • LWIP学习记录2——MAC内核
  • 合同管理系统技术架构深度解析:快鹭云如何通过NLP+区块链实现纠纷率下降67%|附动态安全库存算法实现
  • NumPy:Python 科学计算的基石
  • 分类模型(BERT)训练全流程
  • IO复用(多路转接)
  • c语言学习(days08)
  • 对比学习 | 软标签损失计算
  • 安科瑞工商业光储充新能源电站ACCU-100M微电网协调控制器
  • MyBatis-Plus 分页实战
  • 目前主流的AI深度学习框架对Windows和Linux的支持哪个更好
  • 单细胞转录组学+空间转录组的整合及思路
  • 一个不起眼的问题,导致插件加载失败
  • python中 tqdm ,itertuples 是什么
  • 学习软件测试的第十九天
  • ​Eyeriss 架构中的访存行为解析(腾讯元宝)
  • Java学习----Redis集群
  • SHAP的升级版:可解释性框架Alibi的相关介绍(一)
  • L1与L2正则化:核心差异全解析