插入操作:

从零开始建立B树:

image.png
插入25
image.png
插入38
image.png
插入49
image.png
插入60
image.png
插入80,超过五阶B树每个节点的关键字范围,分裂
image.pngimage.png
image.png
插入90

image.pngimage.png
插入90的错误示范
image.png
插入99
image.png
插入88,由于超过五阶B树每个节点的关键字范围,分裂,将m/2处的关键字向上一个结点移动,并且比它大的关键字新建一个结点
image.pngimage.png
插入83、87
image.png
插入80,分裂
image.png
image.png
插入92、93、94,分裂
image.png
image.png
插入73、74、75,分裂
image.png
根结点超过五阶B树每个节点的关键字范围,分裂,新建一个根节点,将m/2向上取整的关键字移动到新建结点
主:根节点可以不满住B树的最少关键字个数要求
image.png
image.png
image.png

插入总结:

image.png

删除操作:

删除60
image.png
删除80
image.png

image.png
删除38(低于下限,且兄弟够借[即向右兄弟或者做兄弟借一个关键字,且兄弟结点的关键字个数不会低于下限(不是单纯的把借来的关键字直接加入,要满足B树关键字次序的要求)。具体向有兄弟借还是左兄弟借看情况]
image.png

image.png
image.png(不严谨的描述)
删除90
image.png
image.png(不严谨的描述)
image.png
image.png
删除49(兄弟不够借),则和兄弟合并
image.png
两个结点的中间关键字也要参与合并,本例70

image.png

image.png
image.png
image.png

总结:

image.png