红黑树,2-3-4树的删除

来源:互联网 发布:各种乐器软件 编辑:程序博客网 时间:2024/06/03 17:18

链接

概念
插入

2-3-4树的删除

1. 从根节点往下寻找待删除的key,如果搜索到了一个2节点
   a) 如果兄弟节点不是2节点,旋转,使得当前节点被扩充
   b) 如果兄弟节点是2节点,则和父key进行合并,这样当前节点就不会是2节点了
2. 如果待删除的key所在节点是一个内部节点
    a) 如果该key对应的左右两个子节点中,存在非2节点的子节点,从中删除前驱或者后继key来替换当前key。
    b) 如果两个子节点都是2节点,则删除当前key,合并两个子节点。因为第一步已经使当前节点非2节点了,所以这个key的减少不会改变2-3-4树的性质
3. 如果待删除的key所在节点是一个超过一个3或者4的叶子节点(对应2个或者3个key),则删除这个key。


红黑树的示例(用2-3-4树来解释)

 

1. 图a)中 B-D为根的3节点,A是待删除的叶子的2节点
2. 因为C也是2节点,所以A-B-C需要合并,D作为新的根节点
3. 移除A,B和C只有一个能使黑色,因为D连接着B,所以B黑,C红



原创粉丝点击