B树和B+树

王道数据结构知识点整理

B树(多路平衡查找树)

  • 阶:B树中所有结点的孩子结点树的最大值

  • 一棵B树可以是空树,如果不为空树必须满足如下性质:

    1.树中每个非叶结点至多有m棵树,至少有m/2取上界个子树(除根结点外)
    2.树中每个非叶结点至多有m-1个关键字,至少有m/2去上界-1个关键字
    3.所有的叶结点都出现在同一层次上,并且不带信息(可以视为外部结点或类似于折半查找判定树的查找失败结点,实际上这些结点不存在,指向这些结点的指针为空)
    4.B树是所有结点的平衡因子均等于0 的多路查找树,即B树也是平衡因子均等于0 的平衡二叉树。

B树的高度

B树中的大部分操作所需的磁盘存取次数与B树的高度成正比,应该明确B树的不包括最后的不带任何信息的叶结点所处的那一层
对任意一棵包含n个关键字、高度为h、阶数为m的B树:


图片.png
B树的查找

B树的查找包含两个基本的操作:1.在B树中查找;2.在结点中查找
由于B树常存储在磁盘上,因此前一个查找操作是在磁盘上进行的,而后一个查找操作是在内存中进行的,即在找到目标结点后,先将结点中的信息度如内存,然后采用顺序查找法或折半查找法查找等于K的关键字

B+树

B+树是应数据库所需而出现的一种B树的变形树
一棵m阶的B+树需满足下列的条件:
1.每个分支非结点最多有m棵子树,最少有m/2取上界个子树
2.结点的子树个数与关键字个数相等
3.所有叶结点包含全部关键字及指向相应记录的指针,叶结点中将关键字按带大小顺序排列,并且相邻叶结点按大小顺序相互连接起来
4.所有分支结点中仅包含它的各个自己诶单重关键字的最大值及指向其子结点的指针

m阶的B+树与m阶的B树的主要差异:
1.在B+树中,关键字的个数等于结点的子树个数
在B树中,关键字的个数等于结点的子树个数-1
2.在B+树中,叶结点包含信息,所有非叶结点仅其索引作用,非叶结点中的每个索引项值含有对应子树的最大关键字和指向该子树的指针,不含有关键字对应记录的存储地址
B树中,叶结点不包含信息,所有非叶结点代表类似于折半查找判定树查找失败的结点。
3.在B+树中,叶结点包含了全部关键字,即在非叶结点中出现的关键字也会出现在叶结点中,而在B树中,叶结点包含的关键字和其他结点包含的关键字是不重复的。
4.B+树在查找过程中,非叶结点的关键字值等于给定值时并不终止,而是继续向下查找,直到叶结点上的该关键字为止

你可能感兴趣的:(B树和B+树)