tnblog
首页
视频
资源
登录

红黑树-简介和添加节点的默认颜色 06

3751人阅读 2022/6/15 18:44 总访问:1056351 评论:0 收藏:0 手机
分类: Java集合

一、红黑树

红黑树是一种自平衡的二叉查找树,是计算机科学中用到的一种数据结构。1972年出现,当时被称之为平衡二叉B树。后来,1978年被修改为如今的"红黑树"。它是一种特殊的二叉查找树,红黑树的每一个节点上都有存储位表示节点的颜色,每一个节点可以是红或者黑;红黑树不是高度平衡的,它的平衡是通过"红黑规则"进行实现的

总结红黑树:

1、平衡二叉B树

2、每一个节点可以是红或者黑

3、红黑树不是高度平衡的,它的平衡是通过“自己的红黑规则"进行实现的

样式如下



二、红黑规则

1.每一个节点或是红色的,或者是黑色的。2.根节点必须是黑色

3.如果一个节点没有子节点或者父节点,则该节点相应的指针属性值为Nil,这些Ni视为叶节点,每个叶节点(Nil)是黑色的;
4.如果某一个节点是红色,那么它的子节点必须是黑色(不能出现两个红色节点相连的情况)

5.对每一个节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数目的黑色节点;

样式如下



三、案例
1、将节点20、18、23组成红黑树

红黑规则
每一个节点是红色或者黑色,根节点必须是黑色
每个叶节点(Nil)是黑色的;

不能出现两个红色节点相连

对每一个节点,到其所有后代叶节点的简单路径上,均包含相同数目的黑色节点;
1.1、添加节点20,如下图一

1.2、添加节点18,如下图二,图二违背了红黑规则,
违背的红黑规则为:对每一个节点,到其所有后代叶节点的简单路径上,均包含相同数目的黑色节点;
例如节点20,它到左叶节点的简单路径要进过3个黑色,但是到右叶节点只进过2个黑色

如果要想满足红黑规则那么要把18改成红色的,如下图

节点23添加后也要将其改为红色样式如下,

注意:注意添加节点时,节点的默认颜色为红色的效率更高。因为如果刚才3个节点都是红色,那么只需要改变节点为20的颜色就行了。


评价
没有个性,不需要签名
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
欢迎加群交流技术