红黑树原理剖析

写到前面的话:
        作者从毕业开始一直从事游戏开发,提供大量游戏实战模块代码及案例供大家学习与交流,希望以下知识可以带来一些帮助,如有任何疑问,请加群641792143交流与学习 或关注微信公众号 程序员干货区
       闻道有先后,术业有专攻,希望大家不吝赐教

首先介绍一下红黑树的几点性质:
       性质1:根节点是黑色
       性质2:每个叶子节点是黑色(指的是空叶子节点)
       性质3:每个红色节点的两个子节点一定是黑色
(子节点必须同时存在或不存在)
       性质4:任意一节点到每个叶子节点的路径都包含数量相同的黑节点(非空叶子节点)
       性质4.1:如果一个节点存在黑色子节点,那么该节点肯定有两个子节点(不然黑色失衡)
       扩展5:不可能有两个相连的红节点

红黑树是二叉查找树,但不是完美平衡,只是黑色完美平衡。

红黑树通过三种方式达到自平衡:左旋、右旋、变色。

1.红黑树查找

因为红黑树是二叉查找树,所以满足二叉查找规则,如若不清楚,可参考博客AVL树原理剖析。

2.红黑树插入

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

3.红黑树节点的删除

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述以上就是红黑树最关键的理论部分,如若需要代码,请加文章开头的群号

发布了43 篇原创文章 · 获赞 1 · 访问量 2309

猜你喜欢

转载自blog.csdn.net/lpl312905509/article/details/103707456
今日推荐