在B-树中删除节点时,可能会发生向兄弟节点借元素,和孩子节点交换元素,甚至节点合并的过程。

我们以下面的树为基础,进行删除操作。

首先明确一下这个树的定义。它是一个5阶树。所以,每个节点内元素个数为2~4个。

我们依次删除8、16、15、4这4个元素。

首先删除8,因为删除8后,不破坏树的性质,所以直接删除即可。得到如下

然后删除16,这导致该节点只剩下一个13节点,不满足节点内元素个数为2~4个的要求了。所以需要调整。这里可以向孩子借节点,把17提升上来即可,得到下图。这里不能和兄弟节点借节点,因为从3,6节点中把6借走后,剩下的3也不满要求了。另外,也不能把孩子中的15提升上来,那样会导致剩下的14不满足要求。

然后删除15,删除15后同样需要调整。调整的方式是,18上升,17下降到原来15的位置,得到下图。

然后删除元素4,删除4后该节点只剩下5,需要调整。可是它的兄弟节点也都没有多余的节点可借,所以需要进行节点合并。节点合并时,方式会有多种,我们选择其中的一种即可。这里,我们选择父节点中的3下沉,和1,2,以及5进行合并,如下图。

但这次调整,导致6不符合要求了。另外,6非根节点,但只有2个孩子,也不符合要求。需要继续调整。调整的方式是,将10下沉,和6,以及13,18合并为根节点,如下图。

结束。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

mysql删除树_B-树的删除过程介绍相关推荐

  1. mysql索引 b树_B树与MySQL数据库索引.ppt

    B树与MySQL数据库索引 * B+树及MySQL数据库索引 厦门大学数据库实验室 罗道文 2014-08-02 ?B树以及B+树的特点以及原理 ?MySQL存储引擎MyISAM和InnoDB的B+树 ...

  2. mysql联合索引B 树_B+树和Mysql索引详解

    B+树总结 根据以下几篇文章总结的自己的心得,便于自己理解 B+树内部平衡详解 B+树存储原理 B+树存储 MySQL索引-B+树(看完你就明白了) 从B树.B+树.B*树谈到R 树 我们一般看到的B ...

  3. python实现b树_B树及2-3树的python实现

    B树(或称B-树)是一种适用于外查找的树,它是一种平衡的多叉树. 阶为M的B树具有下列结构特征: 1.树的根或者是一片树叶,或者其儿子数在2和M之间. 2.除根节点外的所有非树叶节点儿子数在┌M/2┐ ...

  4. mysql b 树删除操作,B-树的删除过程介绍

    在B-树中删除节点时,可能会发生向兄弟节点借元素,和孩子节点交换元素,甚至节点合并的过程. 我们以下面的树为基础,进行删除操作. 首先明确一下这个树的定义.它是一个5阶树.所以,每个节点内元素个数为2 ...

  5. B 树和 B+ 树的插入、删除和数据页分裂机制

    B树和B+树 索引在磁盘中的存储 扇区 B+树比平衡二叉树.B树在磁盘中的优化 Innodb数据文件在磁盘中的储存 数据页 数据页分裂 行溢出 Innodb中的B+树如何处理重复Key的 B树和B+树 ...

  6. B树--B+树原理及操作(插入,删除)

    前言: B树代码戳这里:https://blog.csdn.net/alzzw/article/details/97663352     在讲B树之前,先说一下多路查找树: 2-3树:是一种多路查找树 ...

  7. Algorithm:树相关算法(BBT/BST/B树/R树)简介(二叉查找树、二叉查找树的插入节点、二叉查找树的删除、二叉树的遍历、平衡二叉树)C 语言实现

    Algorithm:树相关算法(BBT/BST/B树/R树)简介(二叉查找树.二叉查找树的插入节点.二叉查找树的删除.二叉树的遍历.平衡二叉树)C++语言实现 目录 树的基础知识 1.二叉树的遍-前序 ...

  8. 目录树 删除 数据结构_数据结构:B树和B+树的插入、删除图文详解

    B树 1.1B树的定义 B树也称B-树,它是一颗多路平衡查找树.我们描述一颗B树时需要指定它的阶数,阶数表示了一个结点最多有多少个孩子结点,一般用字母m表示阶数.当m取2时,就是我们常见的二叉搜索树. ...

  9. 数据结构:B树和B+树的插入、删除图文详解

    目录 B树 1.1B树的定义 1.2B树的插入操作 1.3B树的删除操作 B+树 2.1 B+树的定义 2.2 B+树的插入操作 2.3 B+树的删除操作 B树 1.1B树的定义 B树也称B-树,它是 ...

  10. 【转】B树的插入和删除

    一.B树 1.B树的定义      B树是一种平衡的多分树,通常我们说m阶的B树,它必须满足如下条件:      (1)每个结点至多有m个子结点:      (2)每个非根节点所包含的关键字个数 j ...

最新文章

  1. android DataBind LiveData ViewModel 使用详解
  2. 学习规划|机器学习和NLP入门规划
  3. Java虚拟机7:内存分配原则
  4. C语言 将程序运行的时间记录在记事本中,下次运行进行读取
  5. Python中使用turtle绘制多个同心圆
  6. Hive 禁止提交 大范围磁盘扫描任务(禁止提交where条件包含未分区过滤)
  7. Java DataInputStream readBoolean()方法(带示例)
  8. 草稿 断开式绑定combobox
  9. Struts2之struts-2.3.20开发环境的搭建并实现第一个Hello World小应用
  10. Smoothy将于4月22日-27日在BSCPad等4个平台进行IDO
  11. Win 10 没有 Hyper-V 解决方案
  12. 智能优化算法:JAYA优化算法 -附代码
  13. 函数式编程-尾递归、尾调用
  14. H.264中的指数哥伦布解码
  15. zookeeper分布式协调服务的使用一
  16. USB接口ID卡读卡器oem软件(vb源代码)
  17. 转载python操作wps V9 API,测试好用
  18. 障碍物参考线交通规则融合器:Frame类
  19. 计蒜客——恋爱纪念日(学习如何格式化打印日期)
  20. 真正的Java学习从入门到精通

热门文章

  1. C# DataTable 按数字排序问题
  2. 解决apache启动错误httpd:Could not reliably determine...
  3. 程序江湖:第五章 机会是一种困扰
  4. 7.Shell 编程从入门到精通 --- 流编辑
  5. 22.c语言各种输入输出与错误处理
  6. 55. Yii import class 与 对象创建
  7. 27.Yii App应用
  8. CEF JS实现获取剪贴板图片的DataURL
  9. 数据结构与算法之美-队列
  10. 几种 vue的数据交互形式