B+树

1、what is B+ tree?

B+树是B树的的一种变形

性质:

(1)n棵子树的结点中含有n个关键字,每个关键字不保存数据,只用来索引,所有的数据都保存在叶子结点中;

(2)叶子结点中依关键字的大小顺序链接。

(3)所有非叶结点仅包含其子树中最大(或最小)关键字;

(4)在B+树中又两个头指针,一个指向根结点,一个指向关键字最小的叶子结点。

 

2、B+树查找

有两种:

(1)从最小关键字起顺序查找;

(2)从根结点起,进行顺序查找,即使在非叶子结点中找到了,并不终止,而是继续向下直到叶子结点

 

3、B+树插入

假设有m阶B+树,要插入关键字为a。

算法:

(1)如果当前结点是根结点并且插入后结点关键字数目小于等于m,则算法结束;

(2)如果当前结点是非根结点并且插入后结点关键字数目小于等于m,则判断若a是新索引值,则加入到双亲结点中,迭代,否则直接结束;

(3)如果插入后的关键字数目大于m,则结点先分裂成两个结点X和Y,并且各自所含关键字数目差不多,调整双亲结点的索引值,迭代;

 

 

 

4、B+ 树的删除

B+树的删除也仅在叶子结点进行,当叶子结点中的最大关键字被删除时,其在非终端结点中的值可以作为一个“分界关键字”存在。若因删除而使结点中关键字的个数少于m/2 (m/2结果取上界,如5/2结果为3)时,其和兄弟结点的合并过程亦和B-树类似。

 

posted @ 2016-11-22 12:07  KennyRom  阅读(181)  评论(0编辑  收藏  举报