B树--老先生

tip1

B树和B+树

阶:一个节点的子节点数目的最大值

B树特征:

1.根结点至少有两个子女。

2.每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m

3.每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m

4.所有的叶子结点都位于同一层。

5.每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域分划。

img

关于规则5,1<2,8>6,(3,5)在(2,6)中间,满足值域划分的要求

B树的查找过程很简单,比较大小,确定值域就好了。

B树的插入

插个4,(3,5)和(2,6)放不下了,根节点还能放下,于是放到根节点,下面的再根据值域划分

img

B树的删除

img

删除11后,12孩子数不够了,这时候左旋,13成为12和15的父节点,12和15作为左右两个子节点。

B+树特征

1.有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。

2.所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。

3.所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素。

img

卫星数据:

索引元素指向的数据记录,这样的话B树中每个节点都带着卫星元素,而b+树里面只有叶子节点带了卫星元素

img

img

B+树的好处

中间节点不含卫星元素,所以在磁盘上可以放更多的中间节点,树更加矮胖,IO次数少

搜索查询的层次总是稳定的,要查到叶节点。

在范围搜索上,叶子节点有链表指针,远比b树容易

B+树查找时是从上到下查找B-树则是从下往上查找中序遍历

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值