数据结构--二叉树

目录

有序二叉树:

平衡二叉树:

234树:

红黑树

红黑树特点:

为什么红黑树是最优二叉树?

哈夫曼树和哈夫曼编码


有序二叉树:

平衡二叉树:

在有序二叉树的基础上得来的,且左右子树的高度差绝对值不能超过1.

调整策略:

1、LL型调整策略

注意要找造成不平衡节点的最近的不平衡节点

2、RR型

10插入后,5是不平衡的节点,往右走两步。中间节点为8

3、LR型

转换为LL型

4、RL型

平衡二叉树太耗费资源,引入了红黑树。红黑树的基础是234树

234树:

变成四个节点的后,取中间节点向上走一层,连接两端

红黑树

二节点用黑色表示,三节点用黑红,四节点用黑红红表示,然后按照234树变成红黑树。

红黑树特点:

1、红黑树只有红色和黑色两种颜色

2、根节点一定是黑色的,

3、叶子节点是存在的,统一为黑色

4、如果一个节点的值是红色的那么他的子节点的值一定是黑色的

5、从根节点到任意一个叶子节点,路径上的黑色节点数目相同。(黑色节点数就是234数的高度)

为什么红黑树是最优二叉树?

最长链不超过最短链的二倍

时间复杂度比有序二叉树更稳定,平衡调整更简单

哈夫曼树和哈夫曼编码

自定义变长编码表容易引起歧义

相关推荐
fengenrong34 分钟前
20260429
c++·算法
南宫萧幕35 分钟前
Python与Simulink联合仿真:基于DQN的HEV能量管理策略建模与全链路排雷实战
开发语言·人工智能·python·算法·机器学习·matlab·控制
apollowing1 小时前
启发式算法WebApp实验室:从搜索策略到群体智能的能力进阶(优)
算法·启发式算法·web app
liuyao_xianhui1 小时前
进程概念与进程状态_Linux
linux·运维·服务器·数据结构·c++·哈希算法·宽度优先
如君愿1 小时前
考研复习 Day 26 | 习题--计算机网络第三章(数据链路层 下)、数据结构 多维数组与广义表
数据结构·计算机网络·考研·记录考研
bqq198610261 小时前
MySQL分库分表
数据结构·mysql
迷途之人不知返1 小时前
List的模拟实现
数据结构·c++·学习·list
Chat_zhanggong3452 小时前
主推NT98336BG作用有哪些?
嵌入式硬件·算法
Run_Teenage2 小时前
算法:线段树
算法
Westward-sun.2 小时前
YOLOv2算法全方位解析:从BatchNorm到聚类先验框的九大改进
算法·yolo·聚类