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

文章目录

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

B树的插入

首先将根节点的关键字个数填满,填满后再分开成树
在这里插入图片描述
分开的规则
在这里插入图片描述
此时插入90,从根节点依次查找,然后插入到终端节点的关键字中
在这里插入图片描述
插入同上,注意此时在终端节点插入要符合终端节点的大小顺序
在这里插入图片描述

此时插入88,插入到终端节点后,发现99溢出,再次按规则分开成树
在这里插入图片描述
分开结果
在这里插入图片描述
再插入83和87
在这里插入图片描述
再插入80,此时溢出,再次分开成树
在这里插入图片描述
分开成的父节点作为原父节点的关键字
在这里插入图片描述
再次插入92,93,94,此时终端节点关键字个数溢出
在这里插入图片描述
分开成树
在这里插入图片描述
再次插入73,74,75,插入后溢出
在这里插入图片描述
再次分开成树,此时又发现原父节点满的
在这里插入图片描述
对原父节点进行分开成树

在这里插入图片描述

小结

在这里插入图片描述

B树的删除

此时删除60
在这里插入图片描述
直接删除关键字即可,然后注意终端节点的关键字个数是否合法
在这里插入图片描述
此时删除80,可以用直接前驱或者直接后继替代。这里找到直接前驱77
在这里插入图片描述
将77替代为删除的节点
在这里插入图片描述
此时删除77,找到直接后继82
在这里插入图片描述
将82替代
在这里插入图片描述
此时删除38,发现该节点的关键字个数低于下限
在这里插入图片描述
将49移下去,70移动上去 在这里插入图片描述
此时删除90
在这里插入图片描述
此时将88移下去,87移上去
在这里插入图片描述
此时删除49,发现节点关键子个数小于下限
在这里插入图片描述
此时将右兄弟(71 72)的和原父节点的对于关键字(70)合并
在这里插入图片描述
此时73所在的节点的关键字个数少于小限,将其与双亲结点和兄弟节点合并,此时根节点为零个关键字,那么可以删除
在这里插入图片描述

小结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/312163.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32+Codesys工业软件PLC解决方案

工业控制系统在现代制造和自动化领域扮演着关键角色, 基于IEC 61131-3 标准的控制器编程开发软件平台CODESYS,适用于多种行业的控制系统的开发,使用户方便快捷地对自动化工程进行编程和配置,完成项目开发、软件测试和应用调试。 本次STM32联合合作伙伴C…

Linux基础知识学习2

tree命令的使用 可以看到dir2目录下的这些文件,要想显示dir2的具体结构,可用tree命令 mv命令 它可以实现两个功能 1.将文件移动到另一个目录中 2.对某一个文件进行重命名 1.将文件移动到另一个目录中 这里将dir1中的2.txt移动到他的子目录dir3中 执行…

2022年全球运维大会(GOPS上海站)-核心PPT资料下载

一、峰会简介 GOPS 主要面向运维行业的中高端技术人员,包括运维、开发、测试、架构师等群体。目的在于帮助IT技术从业者系统学习了解相关知识体系,让创新技术推动社会进步。您将会看到国内外知名企业的相关技术案例,也能与国内顶尖的技术专家…

S7-1200 PLC回原方式详细解读(SCL代码)

S7-1200PLC脉冲轴位置控制功能块的介绍,可以查看下面链接文章: https://rxxw-control.blog.csdn.net/article/details/135299302https://rxxw-control.blog.csdn.net/article/details/135299302脉冲轴工艺对象组态设置介绍 https://rxxw-control.blog.csdn.net/article/det…

【小沐学NLP】Python实现TF-IDF算法(nltk、sklearn、jieba)

文章目录 1、简介1.1 TF1.2 IDF1.3 TF-IDF2.1 TF-IDF(sklearn)2.2 TF-IDF(nltk)2.3 TF-IDF(Jieba)2.4 TF-IDF(python) 结语 1、简介 TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。TF是词频(Term Fr…

Android apk安装包反编译——apktool工具

目录 一、apk 文件结构二、下载 apktool三、 使用 apktool 反编译 apk四、编译为apk五、apk签名1.生成密钥库2.使用 v1 签名3.使用 v2 签名 六、Dex 加解密原理 一、apk 文件结构 首先是 apk,即安卓程序的安装包。Apk 是一种类似于 Symbian Sis 或 Sisx 的文件格式…

zabbix添加监控主机(agent)并告警

一、添加监控主机 总体来说,在被监控主机上安装部署zabbix-agent,并修改配置文件(zabbix_agentd.conf)的参数。然后在zabbix 服务端zabbix-get检查是否可以监控。如果可以了,就可以在web页面添加了,要监控…

SpringBoot知识

1、Spring和SpringBoot对比 2、版本调整 (1)先排除是否是JDK与SpringBoot的版本不一致导致的:如JDK1.8和SpringBoot3.1.5冲突; (2)调整编译版本 (3)调整maven的jdk (4&…

12.30_黑马数据结构与算法笔记Java

目录 320 全排列无重复 Leetcode47 321 组合 Leetcode77 分析 322 组合 Leetcode77 实现 323 组合 Leetcode77 剪枝 324 组合之和 Leetcode 39 325 组合之和 Leetcode 40 326 组合之和 Leetcode 216 327 N皇后 Leetcode51-1 328 N皇后 Leetcode51-2 329 解数独 Leetco…

Java:IO流——字节流和字符流

目录 IO流的基本概念 IO流体系结构 FileOutputStream字节输出流 构造方法 成员方法 细节 关流 FileInputStream字节输入流 构造方法及成员方法 read不带参数代码示例 read带参数代码示例​编辑 将字节数组或字符数组转成字符串 FileReader 字符输入流 构造方法和…

移动硬盘打不开怎么办?没有比这更好的办法了

移动硬盘打不开是常见故障,可能的原因有很多,例如硬盘驱动器故障、文件系统损坏、分区表错误等。本文将详细分析这些原因,并提供相应的解决方法,帮助您解决移动硬盘打不开的问题。 当移动硬盘打不开时,为了保留其中的文…

设计模式(4)--对象行为(11)--访问者

1. 意图 表示一个作用于某对象结构中的各元素的操作。 使你可以在不改变各元素的类的前提下定义于作用于这些元素的新操作。 2. 五种角色 抽象访问者(Visitor)、具体访问者(Concrete Visitor)、抽象元素(Element)、 具体元素(Concrete Element)、对象结构(ObjectStructure) 3…