浅谈 B树,B+树

1.B树

B树,也叫B-树,它是一棵多路平衡搜索树。
一个m阶的B树满足以下条件:
1. 每个节点最多有m个子节点。(m>=2,m=2时是二叉搜索树)
2. 根节点至少有2个子节点,至少1个关键字.(除了一棵树只有根节点外)
3. 关键字集合分布在整颗数中,任何一个关键字出现且只出现在一个节点中
4. 所有叶子节点在同一层。(叶子节点不包含任何信息,可看成额外的节点)
5. 有k个子节点的分支节点有k-1的关键字,按递增顺序排列。
6.其搜索性能等价于在关键字全集内做一次二分查找

B-树的搜索,从根结点开始,对结点内的关键字(有序)序列进行二分查找,如果

命中则结束,否则进入查询关键字所属范围的儿子结点;重复,直到所对应的儿子指针为

空,或已经是叶子结点;(如果比关键字小则往关键字左边地址进行继续查找,比关键字大则往关键字右边进行查找)

2.B+树

        B+树是B-树的变体,也是一种多路搜索树:

       1.其定义基本与B-树同,除了:

       2.非叶子结点的子树指针与关键字个数相同;

       3.非叶子结点的子树指针P[i],指向关键字值属于[K[i], K[i+1])的子树

     (B-树是开区间);

       5.为所有叶子结点增加一个链指针;

       6.所有关键字都在叶子结点出现; 

3.B+树相比于B树的优势

1.B+树的中间节点不保存数据,所以磁盘页能容纳更多的节点元素,能更“矮,胖”;

2.B+树查询必须查找到叶子节点,B树只要匹配到即可,不用管元素位置,因此B+树更稳定(并不慢)

3.对于范围查找来说,B+树只需遍历叶子结点链表即可,B树却需要重复地中序遍历

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值