B树、B+树

B树与B+树的区别在于:

1)在B+树中,具有n个关键字的节点只含有n棵子树,即每个关键字对应一颗子树;而在B树中,具有n个关键字的节点有n+1棵子树
2)B+树:每个节点(非根节点)关键字个数【m/2】<=n<=m (根节点:1<=n<=m),
在B树:[m/2]-1<=n<=m-1(根节点:1<=n<=m-1)
3) 在B+树中,叶节点包含信息,所有非叶节点仅起到索引作用,非叶节点中的每个索引项只含有对应子树的最大关键字和指向孩子树的指针,不含有该关键字对应记录的存储地址。
4) 在B+树中,叶节点包含了全部关键字,即在非叶节点中出现的关键字也会出现在叶节点中。而在B树中,叶节点包含的关键字和其它节点包含的关键字是不重复的。

B+树有一个最大的好处,方便扫库,B树必须用中序遍历的方法按序扫库,而B+树直接从叶子结点挨个扫一遍就完了。
B+树支持range-query(区间查询)非常方便,而B树不支持。这是数据库选用B+树的最主要原因。
通常在B+树中,有两个头指针,一个指向根节点,另一个指向关键字最小的叶节点。因此,B+树可以进行两种查找:一种是从最小关键字开始的顺序查找,另一种是从根节点开始,进行多路查找。

B树,又称为多路平衡查找树,B树中所有节点的孩子节点数的最大值称为B树的阶,通常用m表示,一颗m阶B树或为空树,或为满足如下特性的m叉树:

1)书中每个节点之多有m棵子树(即至多含有m-1个关键字)
2)若根节点不是终端节点,则至少有两颗子树,(至少含有一个关键字)
3)除根节点外的所有非叶节点至少有取上界【m/2】棵子树(即至少含有【m/2】-1个关键字)
4)n为关键字的个数,则【m/2】-1<=n<=m-1

P0 K0 P1 K1 P2 K2 P3
K为关键字,指向子节点的指针。 5)所有叶节点都出现在同一层次上,并且不带信息(可以看做是外部节点或者类似于折半查找判定
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值