由2-3树到红黑树/红黑树的宏观架构之构造2-3树

版权声明:转载请注明出处 https://blog.csdn.net/HeXiQuan123/article/details/86679323

希望看此文前了解什么是2-3树,就不介绍什么是2-3树了

查找遍历也不说了

直接上难啃的骨头

2-3树中节点插入规则:

规则1:优先搜索并沉底

规则2:沉底产生4节点则分解

规则一很容易理解,即向2节点插入新节点key=k'产生3节点,若以前2节点的key是k,产生左子树<k,右子树>k,插入后变成左子树<min(k,k'),中子树min(k,k')<*<max(k,k'),右子树>max(k,k');如图

如果不小心最后面节点是3节点,插入后产生4节点,这时就根据规则2进行分解4节点,方便起见不绘制最后一层NULL

对于6中情况的图,希望理解,但是如果记忆不住,后面还有更简单的记忆法

分为6种情况:(此间key大小顺序即abcdefg的大小顺序)

1、就一个节点4节点,即从空树开始插插插插到第三个数插进去,根据规则1,这时就是一个4节点,根据规则2,需要分解4节点:这里分解为一棵3个2-节点的数,如图:

2、父亲是2节点时,两种情况,一种左,一种右互相对称,只写一种图。

3、父亲是3-节点,这时其实是上移4-节点,直到情况2或者情况1

有三种情况如下(注意大小一定满足排序树):

对应变成:

如果不能记忆,可以继续看下面的简单记忆方法

简单记忆法:

只需要把4-节点按照1变成3个2-节点,如下:

那么对于3中的左情况而言:

其他任何情况适用。

猜你喜欢

转载自blog.csdn.net/HeXiQuan123/article/details/86679323