数据结构与算法10の查找のB树(2-3树,2-3-4树)
1. 2-3树
1.1 概念
2-3树中每一个结点都具有两个孩子(2结点)或者三个孩子(三结点)
- 一个二结点有以下特性:
- 包含一个元素
- 同时有两个孩子或者没有孩子
- 一个三节点有以下特性:
- 包含两个元素
- 同时有三个孩子或者没有孩子
1.2 插入(创建)
这里举一个实例,从头来创建2-3:
(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 删除
假设删
(1)删除2:
(2)删除1:
(3)删除5:
(4)删除8:
2. 2-3-4树
2.1 概念
2.2 插入(创建)
2.3删除
3. B树
以上2-3,2-3-4树是B树的特例,下面给出B树的概念,具体操作不再讲解;