7.4_2B树的插入删除

7.4_2B树的插入删除_第1张图片

我们先设置根节点

 7.4_2B树的插入删除_第2张图片

 我们再往里面插入关键字

比如说:80

7.4_2B树的插入删除_第3张图片

 

 7.4_2B树的插入删除_第4张图片

 中间位置为49:(5/2)向上取整为3

新元素一定要插入到最底层”终端结点“,用”查找”来确定插入位置。

7.4_2B树的插入删除_第5张图片

 7.4_2B树的插入删除_第6张图片

 失败节点(叶子节点不属于同一层)

7.4_2B树的插入删除_第7张图片

讲中间的节点放到父节点当中

 7.4_2B树的插入删除_第8张图片

 由于比88大,将90,99放到88的右指针是合理的

插入83,87,直接插入到终端节点

7.4_2B树的插入删除_第9张图片

 7.4_2B树的插入删除_第10张图片

 如果一个关键词需要放到父节点中,需要插入到这个节点的前驱指针的位置的右边的位置

7.4_2B树的插入删除_第11张图片

 那么把93放在哪里呢?

7.4_2B树的插入删除_第12张图片

 7.4_2B树的插入删除_第13张图片

 接下来这个节点又要分裂了

7.4_2B树的插入删除_第14张图片

 此时导致其父节点的关键字的个数也超过了上限,则继续进行这种分裂操作,导致B树的高度增长。

7.4_2B树的插入删除_第15张图片

 重要的是满足核心要求:(关键字的个数要求)

 

接下来看看B树的删除操作:

7.4_2B树的插入删除_第16张图片

 

 

 7.4_2B树的插入删除_第17张图片

 转化为了对终端节点的删除操作

也可用直接后继去顶替

 7.4_2B树的插入删除_第18张图片

 7.4_2B树的插入删除_第19张图片

 上述的是删除终端节点后还没有低于它的下限7.4_2B树的插入删除_第20张图片

 7.4_2B树的插入删除_第21张图片

 (1)兄弟够借

右兄弟宽裕

7.4_2B树的插入删除_第22张图片

 7.4_2B树的插入删除_第23张图片

 7.4_2B树的插入删除_第24张图片

 7.4_2B树的插入删除_第25张图片

 

 7.4_2B树的插入删除_第26张图片

 7.4_2B树的插入删除_第27张图片

 7.4_2B树的插入删除_第28张图片

 

 

你可能感兴趣的:(数据结构,b树,数据结构)