查找のB树
1. [2-3树]
1.1 概念
2-3树中每一个结点都具有两个孩子(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
7,1:
(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树中每一个结点都具有两个孩子(二结点)或者三个孩子(三结点)或者四个孩子(四结点)
- 一个二结点有以下特性:
- 包含一个元素
- 同时有两个孩子或者没有孩子
- 一个三节点有以下特性:
- 包含两个元素
- 同时有三个孩子或者没有孩子
- 一个四节点有以下特性:
- 包含三个元素
- 同时有四个孩子或者没有孩子
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
7,1,2:
(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退出,提示是否保存笔迹,
- 确定保存就可以了!