6.11 2-3-4树

本文探讨了红黑树与2-3-4树之间的同构关系,通过比较它们在插入和删除操作时的转换过程,揭示了两者在结构和操作上的相似性。在插入操作中,红黑树的旋转和着色变化对应于2-3-4树的分裂。而在删除操作中,红黑树的替换策略在2-3-4树中也有相应的体现。通过对各种场景的对比,展示了两者在处理平衡问题时的内在联系。
摘要由CSDN通过智能技术生成

  本来不想写2-3-4树的,因为它其实就是m=4的B-树。但2-3-4树不仅仅是m值最小的B-树,还因为它同构于红黑树。怎么个同构法?看看下面两棵树:
在这里插入图片描述
在这里插入图片描述
  只需要把红黑树的红节点和父节点合并,那么红黑树就变成了B-树,也就是2-3-4树。结构上相同,是同构,那么操作上呢?这是个很有意思的话题。

插入的同构

  不细讲红黑树和B-树在插入时的平衡策略。有些场景,2-3-4树不需要分裂但是红黑树需要旋转。对比下红黑树的变色过程和同构下的2-3-4树的分裂过程:
src/test/resources/2-3-4/1234/rb-before.dot
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
  一对比,就发现这种变色就同构于2-3-4树的分裂。因为场景比较多,所以我写个表格,做个对比。出现这种结果的原因是,2-3-4树的最大key数组,同构于红黑树时要保证中间是黑色,两端是红色。

红黑树场景红黑树操作B-树(2-3-4树)操作
叔伯红色着色分裂
LL型伯父黑色着色,右旋不需要操作
LR型伯父黑色左旋为LL型不需要操作
RR型叔叔黑色着色,左旋不需要操作
RL型叔叔黑色右旋为RR型不需要操作

删除的同构

  红黑树的删除是特别复杂的。B-树的删除也不简单。但是红黑树的七种删除场景虽然多。但是仔细整理还是可以理清楚的。我们可以发现,红黑树的删除,有替换的概念,而B-树的删除也有替换的概念。

红黑树场景红黑树操作B-树(2-3-4树)操作
哥哥是红色着色,左旋无变化
弟弟红色着色,右旋无变化
哥哥黑色,小侄子红色着色,右旋无变化
弟弟黑色,小侄子红色着色,右旋右移
哥哥黑色,大侄子红色着色,左旋左移
弟弟黑色,大侄子红色着色,左旋无变化
侄子全黑色着色无变化

  可以看到2-3-4树的合并在这里是没有体现的。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醒过来摸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值