百度广告公司联系方式,360排名优化,泰州网站推广见效快,wordpress 产品类标题文章目录 1. B树的概念2. B树的查找3. B-树 VS B树4. B 树的插入分析 1. B树的概念
B树是B树的变形#xff0c;是在B树基础上优化的多路平衡搜索树#xff0c;B树的规则跟B树基本类似#xff0c;但是又在B树的基础上做了一些改进优化。
一棵m阶的B树需满足下列条件#x… 文章目录 1. B树的概念2. B树的查找3. B-树 VS B树4. B 树的插入分析 1. B树的概念
B树是B树的变形是在B树基础上优化的多路平衡搜索树B树的规则跟B树基本类似但是又在B树的基础上做了一些改进优化。
一棵m阶的B树需满足下列条件 每个分支结点最多有m棵子树(孩子结点)。非叶根结点至少有两棵子树其他每个分支结点至少有「m/2]棵子树。 前面这两条其实还跟B树是一样的结点的子树个数与关键字个数相等。结点的子树指针p[i]指向关键字值大小在[k[i]k[i1])区间之间所有叶子节点增加一个链接指针链接在一起所有关键字及其映射数据都在叶子节点出现 大家可以对照着图理解一下这几条性质。
B树的特性 1. 所有关键字都出现在叶子节点的链表中且链表中的元素都是有序的。 2. 查找不可能在分支节点中命中。 3. 分支节点相当于是叶子节点的索引仅含有其子树根结点中最大/最小关键码我们这里图中是最小的叶子节点才是存储数据的数据层与B树不同。 2. B树的查找
B树的查找上面有提到——查找不可能在分支节点中命中如果能找到应该在叶子节点的链表中 还是这棵B树为例比如我们要查找33 从根结点开始33比5大往后走比28也大再往后走但是比65小。 所以如果33存在的话应该在28的子树中。 所以进入28的子树中然后比较比28大比35小所以再往这一层的28的子树p1中找这就进入到叶子结点的链表中往后遍历就找到了33。如果查找的是28也要进入到叶子结点的链表中查找即使分支结点中存在 那如果查找34找不到也是一样的最终走到叶子结点的链表中但是没有这个元素所以就找不到。 所以B树的查找无论成功与否都要走到最下面一层的叶子结点而B-树的话查找可能停止在任意一层。
那除了上面的查找方法其实B树还有另外一种查找方法 上面提到对于B树来说所有叶子节点增加一个链接指针链接在一起 而每个叶子结点的链表里面元素都是有序的。 所以我们也可以通过这个链接指针去进行顺序查找从前往后遍历每一个叶子结点的链表。 3. B-树 VS B树 2. B树分支节点相当于是叶子节点的索引叶子节点才是存储数据的数据层与B树不同。
总结
4. B 树的插入分析
这里简单画一个3阶B树插入分裂的过程图大家可以简单看看了解一下