B+树是这样的:
如图所示,B+树中含有两个头指针,一个指向整棵树的根结点,另一个指向关键字最小的叶子结点。同时所有的叶子结点依据其关键字的大小自小而大顺序链接,所有的叶子结点构成了一个 sqt 指针为头指针的链表。
所以,B+树可以进行两种查找运算:一种是利用 sqt 链表做顺序查找,另一种是从树的根结点开始,进行类似于二分查找的查找方式。
在 B+树中,所有非叶子节点都相当于是叶子节点的索引,而所有的关键字都存放在叶子节点中,所有在从根节点出发做查找操作时,如果非叶子节点上的关键字恰好等于给定值,此时并不算查找完成,而是要继续向下直到叶子节点。
B+树的查找操作,无论查找成功与否,每次查找操作都是走了一条从根结点到叶子结点的路径。