数据结构 B+ 树
本文将介绍 B+ 树,它常用于数据库系统和文件系统中。
一、二叉排序树
二叉排序树在插入节点时,会根据 “左 < 根 < 右” 的规则,将新节点插入到合适的位置。
二叉排序树提供了一种通过树形结构快速定位数据的可能。
二、平衡二叉树
平衡二叉树是对二叉排序树的改进,在二叉排序树的基础上,额外限制了左右子树的高度差距。
平衡二叉树避免了树不平衡时,查询效率由 o(logn)
退化为 o(n)
的可能。
三、B 树
B 树,即 Balance Tree,平衡树。与平衡二叉树相比,它的子节点数不再被局限为 2,因此又被称为平衡多路查找树。
四、B+ 树
B+ 树是对 B 树的改进,主要在两个方面:数据只存储在叶子节点上、所有的叶子节点通过一个链表连接。
B+ 树的优点是:
层级更少
在 B 树中,数据会存在非叶节点的元素中,因此元素大小肯定会增加。假设节点容量固定,与 B+ 树相比,B 树中能够存储的元素数量势必更小,这将导致 B 树层级更高。
查询速度更稳定
B 树的数据可能存在非叶节点中,更近的数据将会更快被找到。
B+ 树的数据都在底部,因此每次查询所需的时间都大致相等。
查询区间数据更方便
由于 B+ 树有链表,因此在查询 “相邻数据” 时更方便
遍历更方便
由于 B+ 树有链表,因此可以通过链表更方便地遍历所有数据