代码改变世界

2-3-4树和红黑树

2022-11-24 15:38  杭伟  阅读(65)  评论(0编辑  收藏  举报

2-3-4树,一种4阶的B树。红黑树的本质是2-3-4树。

其中:

2节点对应红黑树中的黑色节点(所有的2节点直接染黑),

3节点对应红黑树中的上黑下红(这里颜色一定是上黑下红),

4节点对应红黑树中的中间黑两边红。

裂变状态对应红黑树中:上红下黑新增红(新增一定是红),如果上是根节点再转为黑色。

 

 红黑树定义:

 

 根据2-3-4树倒推红黑树的5大性质:

1,所有节点只有两种颜色;

2,2节点为根=黑,3节点为根=上黑下红,4节点为空=中间黑两边红;所以根节点一定是黑色;

3,null为黑;

4,倒推,红黑树还原一次2-3-4,实际是因为3节点的下面一定是2节点(下图6-7-8),而2节点=黑,

 

 5,因为2-3-4树中每个路径(每个节点)都有一个黑色。

 

 旋转和变色:

由于新增元素会破坏原有红黑树的平衡,为保持红黑树的相对平衡,会进行旋转和变色操作,

旋转同平衡二叉搜索树,同时红黑树每次插入节点的颜色为红色。

*以下4种情况红黑树需要修复:

 

 

*红黑树的应用:

红黑树在软件工程和操作系统领域有大量的应用,

红黑树真正实现了插入,删除,查找的时间复杂度为O(LogN)。相比平衡二叉搜索树,主要通过减少了“高平衡要求”的旋转操作。