Data Structures Algorithms 简明教程
B+ Trees
B+ 树是 B 树的扩展,旨在使插入、删除和搜索操作更有效率。
B+ 树的性质与 B 树的性质相似,不同之处在于 B 树可以在所有内部节点和叶子节点中存储键和记录,而 B+ 树则在叶子节点中存储记录,在内部节点中存储键。B+ 树的一个显著特性是,所有叶子节点都以单链表格式彼此连接,并且提供了一个数据指针来指向磁盘文件中存在的数据。这有助于以相等数量的磁盘访问来获取记录。
由于主内存的大小有限,因此 B+ 树充当了存储在主内存中无法存储的记录的数据存储。为此,内部节点存储在主内存中,而叶子节点存储在辅助内存存储中。
Properties of B+ trees
-
B+ 树中的每个节点,根节点除外,最多容纳 m 个子节点和 (m-1) 个键,最少容纳 $\mathrm{\left \lceil \frac{m}{2}\right \rceil}$ 个子节点和 $\mathrm{\left \lceil \frac{m-1}{2}\right \rceil}$ 个键,因为树的阶数为 m 。
-
根节点必须至少有两个子节点和至少一个搜索键。
-
B 树中的所有路径都必须在同一级别结束,即叶子节点必须在同一级别。
-
B+ 树始终维护已排序数据。
Basic Operations of B+ Trees
B+ 树支持的操作是插入、删除和搜索,所有操作的时间复杂度为 O(log n) 。
它们与 B 树操作类似,因为将数据存储在此两种数据结构中的基本思想是相同的。然而,两者的不同之处在于,与 B 树不同,数据仅存储在 B+ 树的叶结点中。