红黑树
234树
- 这个树有三种节点,分别包含1/2/3个元素,下方可以有2/3/4个子节点
- 理解234树的插入
红黑树与234树之间的关系
-
红黑树有几个特性,但如果从234树的角度理解红黑树,可以发现对应点:
-
在234树种的多节点(2/3个元素的节点),在红黑树种一般以父节点为黑子节点为红的样子表示
- 如:123
-
在234树中父子节点在红黑树中表示为同黑(或者红黑)
- 同黑如:1234中的123
- 红黑如:123456中的345以及56
-
-
从转换角度来看,红黑可以理解为:当234树中出现同节点中有多个元素了,则以父节点为黑子节点为红的样子表示,当234树中出现下一行了,则插入的是黑节点,而这个插入的节点的父节点(234树)可能是多元素的,所以可能出现黑黑/红黑两种情况
-
更简单一点理解就是,只有多节点的234元素被标示为红黑模式,其他的其实都是黑
红黑树的特性
- 现在来审视红黑树的特性与234树之间的关系
- 1.每个节点不是红色就是黑色
- 2.根节点为黑色
- 3.如果节点为红,其子节点为黑
- 4.任意一个节点只NULL,所含的黑色节点数必须相同
- 从用红黑树替换234树的角度来说,红黑树其实就是用红黑表示同一个节点的不同元素。
- 因此回顾上面4个特性:
- 1为红黑树的规定
- 2其实规定了同一个节点的不同元素的表示形式,即父亲节点为黑,子节点为红的形式
- 3其实不是规定,而是在2的情况下,红节点必定是234树中拥有多个元素的两边元素,这意味着它个其父亲节点在234树种其实是一个节点,那么在2规定了多节点在红黑树种的表示之后,红节点的子节点只能是234树种的子节点,所以必定是黑色的
- 4对应234树是一个平衡搜索树,所以黑色节点(代表234树的层数)必须相同