多路查找树(2-3树,2-3-4树,B树,B+树)

如果要查找的数据在内存,那么对于二叉查找树来说,深度大一点没有关系。

但是如果要查找的数据在外存,那么每次查找都是对外存的一次访问,这样效率就会很低。所以对于外存查找来说我们希望,能降低深度。

而降低深度,无非就一种方式,变的宽一点,所以就让每个节点有多于两个的子节点,并且每个节点可以存多个数据。

多路查找树:每个节点的孩子数可以大于二,并且每个节点可以存储多个元素,并且是查找的。

 

 

2-3树:每个节点都具有两个或者三个孩子,不能只有一个孩子。

性质:

  1.一个 2 结点包含一个元素和两个孩子(或没有孩子)

  2.一个 3 结点包含一小一大两个元素和三个孩子(或没有孩子) 

  3.所有叶子节点都在同一个层次。

2-3-4树:每个节点要么有两个、三个或者四个孩子,要么一个没有。

B树就是多路查找树:以上两个是B树的两种特例,分别是3阶B树和4阶B树。

B树的性质:

  1.如果根节点不是叶子节点那么至少有两个子树。

  2.所有叶子节点都位于同一层。

  3.节点包含:关键字数组,指向孩子节点的指针数组,关键字数量。

 

 

B+树:由于B树进行遍历的时候效率太低,而对于数据库和文件系统来说会经常进行范围查询,所以产生了B+树。

B+树可以看作是信息都是在叶子节点上,其他非叶子节点都是索引,目的是找到叶子节点,每个非叶子节点都保存叶子节点最小值及最小值所在叶子节点的索引,并且叶子节点之间有指针指向。

 

 

区别:

1.功能上说,B+遍历,范围查询效率高。

2.结构上说:B+信息都保存在叶子节点上,其他节点保存最小值索引,并且关键字对应的地址都在叶子节点上,而B树中非叶子节点也保存关键字对应的地址。

节点结构:B树的性质B+树一般都满足。

  B树:

    关键字数组,关键字对应的地址数组  子节点的指针数组,关键字的数量(******子节点的最小数量是阶数的二分之一****)

  B+树:

    关键字数组,关键字数量,子节点的指针数组。(*********每个节点关键字数量和子节点数量相同,并且每个关键字都是对应一个子节点关键字的最小值*******)

 

posted @ 2019-11-18 16:28  高鸣泽  阅读(997)  评论(0)    收藏  举报