前面介绍了二叉排序树和平衡二叉树,本节开始介绍两种用于查找功能的树数据结构——B-树和B+树。
什么是B-树?
B-树,有时又写为B_树(其中的“-”或者“_”只是连字符,并不读作“B减树”),一颗 m 阶的 B-树,或者本身是空树,否则必须满足以下特性:
- 树中每个结点至多有 m 棵子树;
- 若根结点不是叶子结点,则至少有两棵子树;
- 除根之外的所有非终端结点至少有 ⌈m/2⌉ 棵子树;
- 所有的非终端结点中包含下列信息数据:(n,A0,K1,A1,K2,A2,…,Kn,An);
n 表示结点中包含的关键字的个数,取值范围是:⌈m/2⌉-1≤ n ≤m-1
。Ki (i 从 1 到 n)为关键字,且 Ki < Ki+1 ;Ai 代表指向子树根结点的指针,且指针 Ai-1 所指的子树中所有结点的关键字都小于 Ki,An 所指子树中所有的结点的关键字都大于 Kn。
图 1 结点结构
如图 1 所示,当前结点中有 4 个关键字,之间的关系为:K1<K2<k3<K4。同时对于 A0 指针指向的