[数据结构]红黑树的定义以及添加原则

复制代码
红黑树是一种自平衡的二叉查找树,是一种常用的数据结构
1972年出现,在当时被称为平衡二叉B树。后来1978年被修改为如今的“红黑树”
它是一个特殊的二叉查找树,红黑树的每一个节点上都有储存位表示节点的颜色
每一个节点可以是红或者黑,红黑树不是高度平衡的,而是通过红黑规则来实现的
回忆一下:平衡二叉树要求左右子树高度差不能大于1
所以说:
红黑树是一个二叉查找树:小在左 大在右
红黑树不是高度平衡的 不是要求左右子树高度差小于1
特有的红黑规则:
分析红黑规则:
1.每一个节点可能是红色的,也可能是黑色的
2.根节点必须是黑色的
3.如果一个节点没有子节点或者父节点,那么节点的指针属性值为Nil 视为叶节点
4.如果某一个节点是红色的,那么它的子节点必须是黑色的(不能出现两个红色节点相连)
5.对于每一个节点,从这个节点到后代所有节点的简单路径上,均包含相同数目的黑色节点
所以我们现在可以分析一个红黑树节点的构成
A.父节点地址 B.值大小 C左子节点地址 D.右节点地址 E.颜色
举个很简单的例子 根节点就没有父节点 那么父节点的位置就记录为Nil(空的意思)
这个记录的细节就是记录一个地址:指向一个数据为空的节点(叶节点)
——————————————————————————————————————————————————————————————————
添加的节点:默认是红色的(红色的效率高)
相关推荐
眼镜哥(with glasses)4 小时前
蓝桥杯 国赛2024python(b组)题目(1-3)
数据结构·算法·蓝桥杯
int型码农9 小时前
数据结构第八章(一) 插入排序
c语言·数据结构·算法·排序算法·希尔排序
怀旧,9 小时前
【数据结构】6. 时间与空间复杂度
java·数据结构·算法
积极向上的向日葵9 小时前
有效的括号题解
数据结构·算法·
Java 技术轻分享10 小时前
《树数据结构解析:核心概念、类型特性、应用场景及选择策略》
数据结构·算法·二叉树··都差速
chao_78911 小时前
链表题解——两两交换链表中的节点【LeetCode】
数据结构·python·leetcode·链表
曦月逸霜12 小时前
第34次CCF-CSP认证真题解析(目标300分做法)
数据结构·c++·算法
吴声子夜歌15 小时前
OpenCV——Mat类及常用数据结构
数据结构·opencv·webpack
笑口常开xpr15 小时前
数 据 结 构 进 阶:哨 兵 位 的 头 结 点 如 何 简 化 链 表 操 作
数据结构·链表·哨兵位的头节点
@我漫长的孤独流浪16 小时前
数据结构测试模拟题(4)
数据结构·c++·算法