上文https://www.jb51.net/article/154153.htm我们介绍了B-树的性质,本文我们来介绍一下B-树的插入过程。

插入过程和树的构建过程本质是一致的,即都是进行插入操作,并对插入后的B-树进行调整。

我们设定B-树的阶为5。用关键字序列{1,2,6,7,11,4,8,13,10,5,17,9,16,20,3,12,14,18,19,15}来构建一棵B-树。

因为树的阶为5,那么,每个节点最多有5个子节点,每个节点内的关键字个数为3~4个。

于是,第一步是插入1,2,6,7作为一个节点。

然后插入11,得到1,2,6,7,11. 因为节点个数超过4,所以需要对该节点进行拆分。选取中间节点6,进行提升,提升为父节点,于是得到:

有一个规则是新插入的节点总是出现在叶子节点上,接着插入4,8,13,直接插入即可,得到

然后插入10. 得到

因为最右下的节点内有5个元素,超过最大个数4了,所以需要进行拆分,把中间节点10进行提升,上升到和6一起,形成如下结构。

然后插入5,17,9,16,得到如下

之后插入20,插入20后,最右下节点内元素个数为5个,超过最大个数4个,所以,需要把16进行提升,形成如下结构

之后插入3、12、14、18、19,后,形成如下结构。

然后插入15,会导致13提升到根节点,这时,根节点会有5个节点,那么,根节点中的10会再次进行提升,形成如下结构。

结束。

总结

更多相关文章

  1. Android(安卓)多媒体扫描过程(Android(安卓)Media Scanner Proces
  2. Android(安卓)Chromium WebView html js 开发系列
  3. Android(安卓)Calendar使用过程中遇到的问题
  4. CyanogenMod 编译 Google Galaxy Nexus (GSM) 全过程
  5. Android(安卓)启动过程
  6. Android(安卓)启动过程(2)
  7. android 多媒体扫描过程(Android(安卓)Media Scanner Process)
  8. [置顶] Android加载数据过程中的菊花显示
  9. Android的启动过程

随机推荐

  1. Android判断GPS是否开启和强制帮用户打开
  2. Android 对话框
  3. Android中MediaButtonReceiver广播监听器
  4. Android修炼之道—时间测量
  5. php直播源码安卓自定义Dialog设置自动消
  6. Get the Android SDK---获取Android SDK
  7. Delphi XE5 android toast
  8. Android(安卓)判断当前介面是否是在桌面
  9. Android onMeasure、Measure、measureChi
  10. Android代碼執行shell 命令