核⼼要求:
①对m阶B树——除根节点外,结点关键字个数 ≤n≤m-1
②⼦树0<关键字1<⼦树1<关键字2<⼦树2<….
 
在插⼊key后,若导致原结点关键字数超过上限,则从中间位置( )将其中的关键字分为两部分,左部分包
含的关键字放在原结点中,右部分包含的关键字放到新结点中,中间位置( )的结点插⼊原结点的⽗结点。
若此时导致其⽗结点的关键字个数也超过了上限,则继续进⾏这种分裂操作,直⾄这个过程传到根结点为⽌,进
⽽导致B树⾼度增1。
 
 
实例: 
 
插入 数据 25  38   60 70  74  75  83   87   90  92   94  99   49  73  88  93   80 
 
 5阶B树——结点关键字个数 ≤n≤m-1
即:2≤n≤4  所以 一个节点最多插入 5 个元素 
 
 
(1)  依次插入 25 38 49 60 这 4 个元素 2≤n≤4  符合条件 
 
  王道数据结构 (37) b 树的插入

 

 

 

(2) 插入元素 80 一共5 个 不符合条件 分裂   (在插⼊key后,若导致原结点关键字数超过上限,则从中间位置( )将其中的关键字分为两部分,左部分包含的关键字放在原结点中,右部分包含的关键字放到新结点中,中间位置( )的结点插⼊原结点的⽗结点)

拆分规则 :

在插⼊key后,若导致原结点关键字数超过上限,则从中间位置( )将其中的关键字分为两部分,左部分包
含的关键字放在原结点中,右部分包含的关键字放到新结点中,中间位置( )的结点插⼊原结点的⽗结点
王道数据结构 (37) b 树的插入

 

 

49 为中间点  49 作为父节点 25  38 作为左边部分 60  80 作为右边部分 

王道数据结构 (37) b 树的插入

 

 

(3)插入 90   99  

 

王道数据结构 (37) b 树的插入

 

 

(4) 插入 88  

王道数据结构 (37) b 树的插入

 

 

这个时候不符合条件 将 右边 部分进行拆分 

 

规则 :

在插⼊key后,若导致原结点关键字数超过上限,则从中间位置( )将其中的关键字分为两部分,左部分包
含的关键字放在原结点中,右部分包含的关键字放到新结点中,中间位置( )的结点插⼊原结点的⽗结点
 
王道数据结构 (37) b 树的插入

 

 

 

(5) 插入 83  87  刚好符合条件 n 等与4 

王道数据结构 (37) b 树的插入

 

 

(6)插入87 不符合条件 

王道数据结构 (37) b 树的插入

 

 将 80 作为 父节点  得到 

王道数据结构 (37) b 树的插入

 

 

 

(7) 插入 93 

王道数据结构 (37) b 树的插入

 

 

 

拆分得到  

 

王道数据结构 (37) b 树的插入

 

 

 

 

(8)插入 73  74 75 拆开 

得到 

 

王道数据结构 (37) b 树的插入

 

 

 

 

(9) 因为父级节点为 5 个 我们要拆分 按照同样规则进行拆分 

 

在插⼊key后,若导致原结点关键字数超过上限,则从中间位置( )将其中的关键字分为两部分,左部分包
含的关键字放在原结点中,右部分包含的关键字放到新结点中,中间位置( )的结点插⼊原结点的⽗结点。
若此时导致其⽗结点的关键字个数也超过了上限,则继续进⾏这种分裂操作,直⾄这个过程传到根结点为⽌,进
⽽导致B树⾼度增1
 
王道数据结构 (37) b 树的插入

 

 

 

 

 

 

 
 
 

相关文章:

  • 2021-09-15
  • 2021-12-05
  • 2021-11-21
  • 2021-09-10
  • 2021-07-18
  • 2021-06-19
  • 2022-12-23
  • 2021-11-10
猜你喜欢
  • 2021-07-23
  • 2021-07-25
  • 2022-12-23
  • 2021-09-21
  • 2021-09-23
  • 2021-09-05
相关资源
相似解决方案