4阶B树(2-3-4树/TwoFourTree)之插入

本文介绍了4阶B树(2-3-4树,又称TwoFourTree)的插入操作,包括递归和迭代两种方法。递归方法在插入满节点时会分裂节点,而迭代方法在查找过程中遇到满节点即进行分裂。文章详细解析了分裂过程,并通过示例说明了不同情况下的处理策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

B树插入满节点分裂有 两种方法。一种是递归写法,即先往下找到要插入的节点,直接插入。满了就传值到上层进行分裂,一种是迭代写法,在找要插入的节点过程中遇到满节点就分裂,自然当插入的节点满了往上传时其父节点非满,不需要分裂。
下面分别说明:

递归

递归写法中,将包括带插入的值在内的4个值排序,左边两个留在原来的节点,第三个往上,第四个作为新节点,即原来节点的父节点的新的子节点,如图。
准备插入15
溢出,20上移,25右移
基本思想就是如此,加入30节点也是满的,则继续分裂。
在分裂时,情况众多,我的递归写法感觉还存在bug。生成1-100的值,使用shuffle随机打乱再插入。但总会出现少值或者树断了的情况。将所想到的情况描述

首先找到节点,判断其值的数量,等于3则进入分裂函数,待分裂的节点为node,待插入的值为x, 递归时,newnode作为nnode, node作为nnode1。

  • 将node的值与x存入优先队列,并从node删除,记录x插入的位置pos(0-3)。之后插入队列前面两个。第三个取出等待上传,第四个取出存在new node中。
  • 判断插入的位置,原因
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值