掌握了 2-3-4 树也就掌握了红黑树,不信进来看看,建议收藏!
插入第二个节点–3 节点 合并

插入第三个节点—4 节点 合并

插入第 4 个节点—需要分裂

插入 6

插入 7

插入 8

插入 9

插入 10

插入 11

插入 12

最后我们插入 1 来看看效果

到这儿相信大家对于 2-3-4 树应该有了个直观的认知了。
红黑树起源于 2-3-4 树,它的本质就是 2-3-4 树。
3.1 2 节点
? ??一个 2 节点对应的红黑树节点就是一个黑色节点

3.2 3 节点
一个三节点可以有两种情况的红黑树节点,一种是右倾,一种是左倾,所以一个 2-3-4 树可以有多个红黑树

原则:上黑下红
3.3 4 节点
一个四节点转换的情况只有一种,中间节点黑色,左右节点红色

3.4 裂变状态
还有就是在 2-3-4 树中存在的裂变状态。转换为红黑树后会先变色(不能有两个相邻的红色节点)。

接下来具体看看一个 2-3-4 树是如何转换为对应的红黑树的,
原始的 2-3-4 树:

按照右倾规则来转换为:

转换后满足黑色节点平衡的要求
评论