什么是B树

1.什么是B树

  B树又称为多路平衡查找树,B树中所有结点的孩子节点数的最大值称为B树的阶,通常用m表示。

2.B树的特性

一颗m阶B树或为空树,或为满足如下特性的m叉树:

  1)树中每个结点至多有M棵子树(即至多含有m-1个关键字)。

  2)若根节点不是终端结点,则至少有两颗子树。

  3)除根节点外的所有非叶子结点至少有Math.ceil(m/2)棵子树(即至少含有Math.ceil(m-2)-1个关键字)。

  4)所有的叶子结点都出现在同一层次上,并且不带信息。

3.B树的插入

  【经典例题】将依次20,30,50,52,60插入3阶B数。

  第一步:              

第二步:

第三步: 

第四步:

 第五步:

4.B数的删除

当删除的k值不是叶子时,有下列几种情况:

  1)若左子树中的关键字个数>Math.ceil(m/2)-1,则找前驱替代,再删除k。

  2)若右子树中的关键字个数>Math.ceil(m/2)-1,则找后继替代,再删除k。

  3)若左右子树中的关键字个数=Math.ceil(m/2)-1,两子树合并,再删除k。

 当删除的k值是叶子时,有下列几种情况:

  1)若所在的结点关键字个数>Math.ceil(m/2)-1,直接删。

  2)若所在的结点关键字个数=Math.ceil(m/2)-1且兄弟结点的个数≥Math.ceil(m/2),父子换位法。

  3)若所在结点的关键字个数=Math.ceil(m/2)-1且兄弟结点的个数=Math.ceil(m/2)-1,父子合并法。

5.经典例题

【经典例题】对如下图所示的3阶B树,依次执行下列操作,画出各步操作的结果。

  (1)插入90

  (2)插入25

  (3)插入45

  (4)删除60

  (5)删除80

 【解】

答案(1)

答案(2) 

 

 答案(3)

 答案(4)

 答案(5)

 

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值