B+树是一种多路查找树。
和传统的二叉树等树不同,它的每个结点上可以存储多个元素。并且每个结点可以作为它的子树的索引。在一颗B+树中要查找一个元素可以快速地找到。
B+树结点中的信息按顺序排列
叶子结点之间按顺序排列,结点内部的元素按顺序排列。具体是使用链表连接。
B+树和B树的区别:B+树所有叶子结点包含全部的信息,每个非叶子结点作为索引
B+树和二叉树、平衡树、红黑树的比较:
这些树都是内存中的树,每个结点只包含一个元素值,如果用来实现索引会造成层次很深,查找一次需要大量的IO读写。而且平衡树、红黑树在插入、删除时需要进行复杂的旋转,在磁盘中实现起来也很耗时。
因此B+树的优势时作为内存与磁盘交互的数据结构。作为组织磁盘中数据的数据结构。
一个M阶B树具有如下属性:
- 如果根结点不是叶节点,则其至少有两颗子树
- 没一个非根的分支结点都有k-1个元素和K个孩子。k最小时m/2上取整
- 所有叶子结点位于同一层次
- 非叶子结点作为索引
网友评论