数据结构(七)——查找之B-树和B+树

本文详细介绍了B树和B+树的数据结构定义、性质、插入与删除操作,以及它们在磁盘访问优化和数据存储上的应用。B树确保树的高度平衡,而B+树在叶节点存储所有关键码,适用于文件系统和数据库索引。

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

基于《北京大学-数据结构与算法》

B-树

m阶B-树的结构定义

  • 每个结点至多有m个子结点
  • 除根结点和叶结点外,其他每个结点至少有【m/2】个子结点
  • 根结点至少有两个子结点:唯一例外的是根结点就是叶结点时没有子结点、此时B树只包含一个结点。
  • 所有的叶结点在同一层
  • 有k个子结点的非根结点恰好包含k-1个关键码

B-树的性质

  • 树高平衡,所有叶结点都在同一层
  • 关键码没有重复,父结点中的关键码是其子结点的分界
  • B树吧(值接近)相关记录放在同一个磁盘页中,从而利用了访问局部性原理
  • B 树保证树中至少有一定比例的结点是满的 : 这样能够改迚空间的利用率 ;减少检索和更新操作的磁盘读取数目 ;
    其中2-3树较为典型

B-树插入

  • 找到最底层,插入
  • 若溢出,则结点分裂,中间关键码连同新指针插入父结点
  • 若父结点也溢出,则继续分裂 :分裂过程可能传达到根结点(则树升高一层)

B树的删除

  • 删除的关键码不在叶结点层,跟叶中后继对换
  • 删除的关键码在叶结点层 :

1.删除后关键码个数不小于【m/2】- 1, 直接 删除 ;
2. 关键码个数小于 【m/2】- 1:如果兄弟结点关键码个数不等于【m/2】- 1,则从兄弟结点移若干个关键码到该结点中来(父结点中 的一个关键码要做相应变化);2.如果兄弟结点关键码个数等于 【m/2】- 1,则合并

B+树

**是B 树的一种变形,在叶结点上存储信息 **

  • 所有的关键码均出现在叶结点上
  • 各层结点中的关键码均是下一层相应结点中最大关键 码(或最小关键码)的复写

**B+ 树的结构定义 **
m 阶 B+ 树的结构定义如下:

  • 每个结点至多有 m 个子结点
  • 每个结点(除根外)至少有【m/2】- 1个子结点
  • 根结点至少有两个子结点
  • 有 k 个子结点 的结点必有 k 个关键码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值