多路查找树

2019-05-11  本文已影响0人  TomyZhang

多路查找树(multi-way search tree),其每一个结点的孩子数可以多于两个,且每一个结点可以存储多个元素。由于它是查找树,所有元素之间存在某种特定的排序关系。根据每一个结点可以存储多少个元素以及它的孩子数有多少个,可以将多路查找树划分为:2-3树,2-3-4树,B树(或叫B-树),B+树,B*树。

2-3树

一、概念

一般我们接触最多的是二叉树,也就是一个父结点最多有两个子结点。2-3树的意思是,一个父结点可以有两个子结点,也可以有三个子结点,并且其也满足类似二叉搜索树的定义(父结点的值大于左子树,但小于右子树),所有叶子结点都在同一层。

2结点:父结点存储一个值,最多有左右两个子树。假设父结点为p,子结点为l(左结点)、r(右结点),且满足:

l < p < r

3结点:父结点存储两个值,最多有左中右三个子树。假设父结点分别为p1,p2,子结点分别为l(左结点)、m(中间结点)、r(右结点),且满足:

l < p1
p1 < m < p2
r > p2
2-3树

二、相关操作

2-3树相关操作

2-3-4树

一、概念

2-3-4树的每一个结点可能包含一个、两个或三个数据,且任一结点到其每个叶子的所有路径包含的结点数都相同(深度相同)。

2-3-4树

二、相关操作

2-3-4树相关操作

B树(或叫B-树)

一、概念

一棵m阶B树是一棵平衡的m路搜索树。

特点:

B树

二、相关操作

B树相关操作

B+树

一、概念

一棵m阶B+树是一棵平衡的m路搜索树。

特点:

B+树的优势:

B+树

二、相关操作

B+树相关操作

B*树

B* 树是B+树的变体,在B+树的非根非叶子节点中再增加指向兄弟节点的指针。B* 树定义了非根结点所包含的关键字个数至少为(2/3)*M,即块的最低使用率为2/3(代替B+树的1/2)。

上一篇下一篇

猜你喜欢

热点阅读