B树、B+树
一、B树
B树类似于红黑树,但它在降低磁盘I/O操作数方面要更好一些。许多数据库操作系统使用B树或者B树的变种来存储信息。
B树与红黑树不同之处在于B树的结点可以有很多孩子。所以,可以使用B树在时间 O(lgn) 内完成一些动态集合的操作。
若B树的一个内部结点x包含x.n个关键字,那么结点x就有x.n+1个孩子。结点x中的关键字就是分隔点。
1. B树的定义
一棵B树T是具有以下性质的有根树(根为T.root):
- 每个结点x有下面属性:
- x.n,当前存储在结点x中的关键字个数;
- x.n个关键字本身 x.key1,x.key2,⋯,x.keyx.n ,以非降序存放,使得 x.key1⩽x.key2⩽⋯⩽x.keyx.n ;
- x.leaf,一个布尔值,如果x是叶结点,则为TRUE;如果x为内部结点,则为FALSE。
- 每个内部结点x还包括x.n+1个指向其孩子的指针 x.c1,x.c