数据结构与算法10の查找のB树(2-3树,2-3-4树)

1. [2-3树]

1.1 概念

2-3树中每一个结点都具有两个孩子(2结点)或者三个孩子(三结点)

  1. 一个二结点有以下特性:
    • 包含一个元素
    • 同时有两个孩子或者没有孩子
  2. 一个三节点有以下特性:
    • 包含两个元素
    • 同时有三个孩子或者没有孩子

1.2 插入(创建)

这里举一个实例,从头来创建2-3:
7 , 1 , 2 , 5 , 6 , 9 , 8 , 4 , 3 7, 1,2, 5, 6, 9, 8, 4, 3 7,1,2,5,6,9,8,4,3
(1)插入 7 , 1 7,1 71:
在这里插入图片描述
(2)插入2,此时【三结点1-7】已满,故结点2增加一层;为了保证二结点有两个孩子的条件,需要把【三节点1-7】拆开:
在这里插入图片描述
(3)插入5,叶子节点有空间,直接按大小顺序插入:
在这里插入图片描述
(4)插入6,此时【二节点2】有空间插入,变成【三结点2-6】
在这里插入图片描述
为了保证三结点有三个孩子,故把【三结点5-7】拆开:
在这里插入图片描述
(5)插入9:
在这里插入图片描述
(6)插入8,此时【三结点7-9】和【三结点2-6】均满,故需要增加层数:
在这里插入图片描述
为了保证二结点有两个孩子,将【三结点7-9】拆开:
在这里插入图片描述
为了保证两边层数的匹配,将【三结点2-6】拆开:
在这里插入图片描述
按大小顺序链接指针:
在这里插入图片描述
(7)插入4:
在这里插入图片描述
(8)插入3,此时【二节点2】有空间,那么为了三结点有三个孩子,需要把【三结点4-5】拆开:
在这里插入图片描述
按照大小顺序可知,【二节点4】应该上提,与【二节点2】组成三结点;然后按照大小顺序链接指针:
在这里插入图片描述
在这里插入图片描述

1.3 删除

假设删 2 , 1 , 5 , 8 2,1,5,8 2,1,5,8
(1)删除2:
在这里插入图片描述
在这里插入图片描述
(2)删除1:
在这里插入图片描述

(3)删除5:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
(4)删除8:
在这里插入图片描述

在这里插入图片描述

2. [2-3-4树]

2.1 概念

2-3-4树中每一个结点都具有两个孩子(二结点)或者三个孩子(三结点)或者四个孩子(四结点)

  1. 一个二结点有以下特性:
    • 包含一个元素
    • 同时有两个孩子或者没有孩子
  2. 一个三节点有以下特性:
    • 包含两个元素
    • 同时有三个孩子或者没有孩子
  3. 一个四节点有以下特性:
    • 包含三个元素
    • 同时有四个孩子或者没有孩子

2.2 插入(创建)

这里举一个实例,从头来创建2-3:
7 , 1 , 2 , 5 , 6 , 9 , 8 , 4 , 3 7, 1,2, 5, 6, 9, 8, 4, 3 7,1,2,5,6,9,8,4,3
(1) 插入 7 , 1 , 2 7,1,2 712:
在这里插入图片描述
(2) 插入 5 5 5,此时四节点已满,增加层数:
在这里插入图片描述
为了满足二结点有两个孩子,需要把【四结点1-2-7】拆开:
在这里插入图片描述
(3) 插入 6 6 6
在这里插入图片描述
(4) 插入 9 9 9
在这里插入图片描述
(5) 插入 8 8 8

在这里插入图片描述
为了满足【三结点5-8】有 三个孩子,拆开【三结点6-7-9】:
在这里插入图片描述
(6) 插入 4 4 4
在这里插入图片描述
(7) 插入 3 3 3
在这里插入图片描述
同样的,此时为了 满足【四结点3-5-8】有四个孩子,需要拆开【三结点1-2-4】:
在这里插入图片描述

2.3 删除

根据以上构造的2-3-4树,我们假设删除元素是:
1 , 6 , 3 , 4 , 5 1, 6, 3, 4, 5 1,6,3,4,5
(1) 删除非二节点的叶子节点上的元素 1 , 6 1,6 1,6:
在这里插入图片描述
在这里插入图片描述
(2) 删除非叶子节点元素 3 3 3:
在这里插入图片描述
删除后四结点变为三结点,孩子只能有三个,所以要将 结 点 2 , 4 结点2,4 2,4合并:
在这里插入图片描述
(3) 删除元素 3 3 3:
在这里插入图片描述
在这里插入图片描述
(4) 删除元素 5 5 5:
在这里插入图片描述
在这里插入图片描述
此时【二节点8】要有两个孩子,所以合并 结 点 2 结点2 2 结 点 7 结点7 7
在这里插入图片描述

3. B树

以上2-3,2-3-4树是B树的特例,下面给出B树的概念,具体操作不再讲解;

3.1 概念

在这里插入图片描述

3.2 插入和删除

在这里插入图片描述

4. 番外-PPT小 技巧

在制作以上PPT分解步骤时,有些图形并不是太容易做,这时候我们可以手画:

  • 将PPT播放当前页,
  • 演示工具中选择笔,或者荧光笔,
  • 标注后按Esc退出,提示是否保存笔迹,
  • 确定保存就可以了!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值