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

【数据结构之二叉树】

本文主要介绍常见的树结构,以助于我们学习后面的集合框架。

一、二叉树

节点内部结构

常见概念

特点:存储数据无规则,查找比较麻烦

二、二叉查找树

为什么二叉查找树会呈现出这样的规律?

这取决于它添加节点的方式,查找节点也是通过比较的方式进行查找

特点:查找效率高,添加元素遵守的规则可能导致左右子树的高度差很大导致查询效率降低

三、二叉树的遍历方式

1、前序遍历(根左右)

2、中序遍历(左根右)

3、后序遍历(左右根)

4、层序遍历

四、二叉平衡树

为了解决二叉搜索树的树左右高度差很大的弊端

定义:任意节点左右子树高度差不超过1

五、演变

二叉树 -> 二叉搜索树 -> 平衡二叉树

六、平衡二叉树的旋转机制

为什么平衡二叉树能保证左右子树的高度差不超过1?是按照以下规则和时机的。

1、左旋

旋转前:被添加的节点为12

旋转后:被添加的节点为12

特殊情况(支点为根节点)

旋转前:被添加的节点为12

旋转后:被添加的节点为12

2、右旋

旋转前:被添加的节点为1

旋转后:被添加的节点为1

特殊情况(支点为根节点)

旋转前:被添加的节点为1

旋转后:被添加的节点为1

备注:还有左左、左右、右右、右左这四种方式。

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

相关文章:

  • 【openssl】openssl CA.pl 签发证书操作步骤
  • redis执行lua脚本的原子性和数据库原子性的区别
  • [激光原理与应用-315]:光学设计 - SolidWorks, 光机系统设计的神器,打通光学与机械设计的闭环
  • Tomcat部署与HTTP协议详解
  • 佳维视工业一体机在公共交通系统配套中的应用
  • 疯狂星期四文案网第45天运营日记
  • LTspice仿真电路:(三十五)LED恒流驱动仿真(LT3497)
  • burpsuite+captcha-killer插件识别图片验证码进行爆破
  • AiPy 文档自动化处理实践:从 docx 到结构化 db 的高效转换方案
  • 华为仓颉语言的class(类)初步
  • ES Modules +案例分析
  • 【C++】动态导入Windows系统API的简单方法
  • Docker复杂安装--最详细的MySQL主从复制与Redis集群安装、主从复制、主从扩容主从缩容实战版
  • 03-dockerfile
  • 8月7日国赛全真模拟!2025“华数杯”数学建模竞赛,常用模型及算法总结
  • 网络连接的核心机制
  • Python 数据可视化:Matplotlib 与 Seaborn 实战
  • [TryHackMe](知识学习)Hacking with PowerShell
  • 浅显易懂——Redis、SpringDataRedis
  • 充值系统开源版,支持对接码支付,支持三级分销
  • 深入解析 Containerd 的工作原理
  • K8S-Ingress资源对象
  • 【C2000常见问题】当板子处于强电噪声环境下,或带重载时C2000芯片的PWM发波会出现异常,导致炸管。
  • StarRocks学习4-查询优化与性能调优
  • 使用 FastAPI 的 WebSockets 和 Elasticsearch 来构建实时应用
  • 永磁同步电机谐波抑制算法(13)——传统预测控制与传统谐波抑制的碰撞
  • 【学习笔记】大话设计模式——一些心得及各设计模式思想记录
  • 372. 超级次方
  • 力扣hot100:最大子数组和的两种高效方法:前缀和与Kadane算法(53)
  • 【数据结构】递归与非递归:归并排序全解析