B*-tree 算法

来源:互联网 发布:vb.net picturebox 编辑:程序博客网 时间:2024/04/29 08:27

    B*-tree可以说是B+-tree(B+-tree的介绍请看这里:http://blog.csdn.net/flq_chank/article/details/45065595)的一种变体,因此B*-tree有很多与B-tree相似的特点。B*-tree与B-tree的不同点主要有如下的几个方面:

         (1)在B*-tree中,非根结点都有指向其兄弟结点的指针

         (2)在B*-tree中,所有的非根结点都是此B*-tree结点最大容量的3/2。当往B*-tree插入一条数据时,如果当前结点满,而它的兄弟结点未满,则会将一部分数据转移到其兄弟结点中,再在原结点中插入数据,最后还会修改其父结点的兄弟结点中的索引关键字。如果其兄弟结点也满了,就会将当前结点和其兄弟结点整合,然后再分为三个结点(每个结点都是3/2满)。

        可以看出,B*-tree分配新结点的概率比B+-tree要低很多,空间使用率比B+-tree要高很多。

0 0
原创粉丝点击