B+树

来源:互联网 发布:c罗各项数据 编辑:程序博客网 时间:2024/06/15 12:47

B+树的定义:

       1.其定义基本与B-树同(假装你已经知道B树的定义)
       2.非叶子结点的子树指针与关键字个数相同;
       3.非叶子结点的子树指针P[i],指向关键字值属于[K[i], K[i+1])的子树(B-树是开区间);
       4.为所有叶子结点增加一个链指针;
       5.所有关键字都在叶子结点出现;

B+树是由B树和索引顺序访问方法演化而来,但是在现实使用过程中已经没有使用B树的情况了。

B和B+树的区别在于,B+树的非叶子结点只包含导航信息,不包含实际的值,所有的叶子结点和相连的节点使用链表相连,便于区间查找和遍历。

B+树是为了磁盘或其他直接存取设备涉及到一种平衡查找树。在B+树中,所有记录节点都是按照键值的大小顺序存放在同一层的叶子节点上,由各叶子节点指针进行连接。

1,B+树的插入操作

插入必须保证插入后叶子节点依然是有序的,同时需要考虑插入到B+树的三种情况,每种情况都可能会导致不同的插入算法。

B+树插入的3种情况Leaf Page 满Index Page 满操作NoNo直接将记录插入到叶子节点YesNo1,拆分Leaf Page
2,将中间的节点放入到 Index Page中
3,小于中间节点的记录放左边
4,大于或等于中间节点的记录放右边YesYes1,拆分Leaf Page
2,小于中间节点的记录放左边
3,大于或等于中间节点的记录放右边
4,拆分Index Page
5,小于中间节点的记录放左边
6,大于或等于中间节点的记录放右边
7,中间节点放入上一层Index Page



原创粉丝点击