B-Tree
结构特征
为了描述B-Tree ,首先定义一条数据记录为一个**二元组[key, data]**,key 为记录的键值,对于不同数据记录,key 是互不相同的,data 为数据记录除key 外的数据。
那么B-Tree 是满足下列条件的数据结构:
- d 为大于1的一个正整数,称为B-Tree 的度。
- h 为一个正整数,称为B-Tree 的高度。
- 每个非叶子节点由n-1 个key 和n 个指针组成,其中d<=n<=2d 。
- 每个叶子节点最少包含一个key 和两个指针,最多包含2d-1 个key 和2d 个指针,叶节点的指针均为null 。
- 所有叶节点具有相同的深度,等于树高h 。
- key 和指针互相间隔,节点两端是指针。
- 一个节点中的key 从左到右非递减排列。
- 所有节点组成树结构。
- 每个指针要么为null,要么指向另外一个节点。
- 如果某个指针在节点node 最左边且不为null ,则其指向节点的所有key小于v(key1) ,其中v(key1) 为node 的第一个key 的值。
- 如果某个指针在节点node 最右边且不为null ,则其指向节点的所有key大于v(keym) ,其中v(keym) 为node 的最后一个key 的值。
- 如果某个指针在节点node 的左右相邻key 分别是keyi 和keyi+1 且不为null ,则其指向节点的所有key 小于v(keyi+1) 且大于v(keyi) 。