数据结构--二叉树

目录

有序二叉树:

平衡二叉树:

234树:

红黑树

红黑树特点:

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

哈夫曼树和哈夫曼编码


有序二叉树:

平衡二叉树:

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

调整策略:

1、LL型调整策略

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

2、RR型

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

3、LR型

转换为LL型

4、RL型

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

234树:

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

红黑树

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

红黑树特点:

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

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

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

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

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

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

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

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

哈夫曼树和哈夫曼编码

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

相关推荐
fie888919 小时前
NSCT(非下采样轮廓波变换)的分解和重建程序
算法
晨晖220 小时前
单链表逆转,c语言
c语言·数据结构·算法
im_AMBER1 天前
Leetcode 78 识别数组中的最大异常值 | 镜像对之间最小绝对距离
笔记·学习·算法·leetcode
鼾声鼾语1 天前
matlab的ros2发布的消息,局域网内其他设备收不到情况吗?但是matlab可以订阅其他局域网的ros2发布的消息(问题总结)
开发语言·人工智能·深度学习·算法·matlab·isaaclab
其美杰布-富贵-李1 天前
HDF5文件学习笔记
数据结构·笔记·学习
LYFlied1 天前
【每日算法】LeetCode 25. K 个一组翻转链表
算法·leetcode·链表
Swizard1 天前
别再迷信“准确率”了!一文读懂 AI 图像分割的黄金标尺 —— Dice 系数
python·算法·训练
s09071361 天前
紧凑型3D成像声纳实现路径
算法·3d·声呐·前视多波束
可爱的小小小狼1 天前
算法:二叉树遍历
算法
d111111111d1 天前
在STM32函数指针是什么,怎么使用还有典型应用场景。
笔记·stm32·单片机·嵌入式硬件·学习·算法