B树和B+树

本文详细介绍了B树和B+树的概念及其区别。B树是一种平衡的多叉树,用于快速查找、插入和删除操作。B+树则特别适用于磁盘存储,其所有数据都存放在叶子节点上,非叶子节点仅用作索引。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

B树,又称B-树,它是一种平衡的多叉树。
一棵m阶B树(balanced tree of order m)是一棵平衡的m路搜索树。

它或者是空树,或者是满足下列性质的树:
1、根结点至少有两个子女;
2、每个非根节点所包含的关键字个数 j 满足:┌m/2┐ - 1 <= j <= m - 1;
3、除根结点以外的所有结点(不包括叶子结点)的度数正好是关键字总数加1,故内部子树个数 k 满足:┌m/2┐ <= k <= m ;
4、所有的叶子结点都位于同一层。
在B-树中,每个结点中关键字从小到大排列,并且当该结点的孩子是非叶子结点时,该k-1个关键字正好是k个孩子包含的关键字的值域的分划。
因为叶子结点不包含关键字,所以可以把叶子结点看成在树里实际上并不存在外部结点,指向这些外部结点的指针为空,叶子结点的数目正好等于树中所包含的关键字总个数加1。
B-树中的一个包含n个关键字,n+1个指针的结点的一般形式为: (n,P0,K1,P1,K2,P2,…,Kn,Pn)
其中,Ki为关键字,K1<K2<…<Kn, Pi 是指向包括Ki到Ki+1之间的关键字的子树的指针。


m阶的B树和m阶的B+树的区别

1)B+树上所有的有效数据全在叶子节点上,而B树所有节点分散在树中,B-树中的关键字不重复。

2)B+树中有几个关键字就有几个子树,而B树中具有n个关键字的节点含有n+1棵子树。

3)B+树有两个指针,根指针和指向最小节点的指针,叶子节点连接成一个不定长的线型链表。

4)B+树中,每个节点(除根节点外的非叶子节点)中的关键字个数取值范围⎡m/2⎤<= n <=m,根节点n的取值范围是2<=n<=m。B树中,每个节点(除根节点外的非叶子节点)中的关键字的取值范围⎡m/2⎤-1<= n <=m-1。

5)B+树中的所有非叶子节点仅仅起到索引作用,节点中的每个索引项只包含对应子树的最大关键字和指向该子树的指针,不含有该关键字对应记录的存储地址。而在B树中,每个关键字对应记录的存储地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值