当前位置: 首页 > article >正文

B树的性质和插入过程

性质

  1. 平衡性:所有叶子节点都在同一层
  2. 多路:m 阶 B 树
    最多: m 个分支,m-1 个元素
    最少: 根节点 2 个分支 1个元素
    其他节点 ⌈ m / 2 ⌉ \lceil m/2\rceil m/2 个分支 ⌈ m / 2 ⌉ \lceil m/2\rceil m/2 − 1 -1 1 个元素
  3. 有序:结点内有序,左子树<根<右子树

插入过程

  1. 定位插入点:从根节点开始,逐层向下遍历B树,找到要插入的键值应该插入的位置。

  2. 在插入点插入后,检查叶子节点是否已满。如果已满,则需要进行分裂操作。

  3. 分裂操作:如果叶子节点已满(m 个点即满),将其分裂。中间的点(第 ⌈ m / 2 ⌉ \lceil m/2\rceil m/2 个点)上升为子树根节点(插入到未分裂前的根节点当中),中间点左右两端的点变为中间点的键值所在点的左右子树。若未分裂前的根节点被插入后满了,继续重复该操作

定位插入点
是否已满
分裂操作
正常插入操作

![[Pasted image 20241217225421.png]]


http://www.kler.cn/a/446682.html

相关文章:

  • 入侵他人电脑,实现远程控制(待补充)
  • 怿星科技联合赛力斯举办workshop活动,进一步推动双方合作
  • BERT outputs
  • webpack如何自定义插件?示例
  • 如何在 .NET Core 中轻松实现异步编程并提升性能
  • 大数据技术与应用——大数据处理技术(一)(山东省大数据职称考试)
  • 踩坑记录: Python的工作路径(working dircetory)
  • 基于STM32的自学习智能小车设计
  • 微信小程序实现上传图片自定义水印功能、放大缩小旋转删除、自定义字号颜色位置、图片导出下载、图像预览裁剪、Canvas绘制 开箱即用
  • 【深入理解网络协议】
  • 【学习总结|DAY020】Java FIle、字符集、IO流
  • WPF系列二:窗口模式调整
  • 什么是Edge SCDN?
  • Kibana8.17.0在mac上的安装
  • Midjourney制作APP logo教程
  • Ubuntu20.04 编译运行 ORBSLAM2_with_pointcloud_map(以RGBD Orbbec Astra+为例)保姆级教程
  • Http 中 GET 和 POST 的区别?应用场景都有哪些?
  • imu相机EKF
  • 【数据可视化案例】探索影响不同国家预期寿命的主要因素
  • Flutter:CustomScrollView自定义滚动使用