数据结构和算法-B树的插入和删除

文章目录

  • B树的插入
  • 小结
  • B树的删除
  • 小结

B树的插入

首先将根节点的关键字个数填满,填满后再分开成树
数据结构和算法-B树的插入和删除_第1张图片
分开的规则
数据结构和算法-B树的插入和删除_第2张图片
此时插入90,从根节点依次查找,然后插入到终端节点的关键字中
数据结构和算法-B树的插入和删除_第3张图片
插入同上,注意此时在终端节点插入要符合终端节点的大小顺序
数据结构和算法-B树的插入和删除_第4张图片

此时插入88,插入到终端节点后,发现99溢出,再次按规则分开成树
数据结构和算法-B树的插入和删除_第5张图片
分开结果
数据结构和算法-B树的插入和删除_第6张图片
再插入83和87
数据结构和算法-B树的插入和删除_第7张图片
再插入80,此时溢出,再次分开成树
数据结构和算法-B树的插入和删除_第8张图片
分开成的父节点作为原父节点的关键字
数据结构和算法-B树的插入和删除_第9张图片
再次插入92,93,94,此时终端节点关键字个数溢出
数据结构和算法-B树的插入和删除_第10张图片
分开成树
数据结构和算法-B树的插入和删除_第11张图片
再次插入73,74,75,插入后溢出
数据结构和算法-B树的插入和删除_第12张图片
再次分开成树,此时又发现原父节点满的
数据结构和算法-B树的插入和删除_第13张图片
对原父节点进行分开成树

数据结构和算法-B树的插入和删除_第14张图片

小结

数据结构和算法-B树的插入和删除_第15张图片

B树的删除

此时删除60
数据结构和算法-B树的插入和删除_第16张图片
直接删除关键字即可,然后注意终端节点的关键字个数是否合法
数据结构和算法-B树的插入和删除_第17张图片
此时删除80,可以用直接前驱或者直接后继替代。这里找到直接前驱77
数据结构和算法-B树的插入和删除_第18张图片
将77替代为删除的节点
数据结构和算法-B树的插入和删除_第19张图片
此时删除77,找到直接后继82
数据结构和算法-B树的插入和删除_第20张图片
将82替代
数据结构和算法-B树的插入和删除_第21张图片
此时删除38,发现该节点的关键字个数低于下限
数据结构和算法-B树的插入和删除_第22张图片
将49移下去,70移动上去 数据结构和算法-B树的插入和删除_第23张图片
此时删除90
数据结构和算法-B树的插入和删除_第24张图片
此时将88移下去,87移上去
数据结构和算法-B树的插入和删除_第25张图片
此时删除49,发现节点关键子个数小于下限
数据结构和算法-B树的插入和删除_第26张图片
此时将右兄弟(71 72)的和原父节点的对于关键字(70)合并
数据结构和算法-B树的插入和删除_第27张图片
此时73所在的节点的关键字个数少于小限,将其与双亲结点和兄弟节点合并,此时根节点为零个关键字,那么可以删除
数据结构和算法-B树的插入和删除_第28张图片

小结

数据结构和算法-B树的插入和删除_第29张图片

你可能感兴趣的:(王道数据结构和算法考研笔记,数据结构,b树)