关于B树

感觉B树的知识点有点繁琐,经过一天的复习,我总结了一下B树比较重要的几个点。(错误的望指正

(1)首先B树是一颗m叉搜索树。其特点是:

    除了根节点之外,每个节点最少有m/2个孩子,最多有m个孩子。也就是说,除根结点之外每个节点,每个节点最少有m/2-1个关键字,最多有m-1个关键字。根节点最多有m-1个关键字,m个孩子;最少有一关键字,两个孩子。

(2)关于B树的建立和删除

    我们在建立B树的时候,首先将第一个节点填满,当关键字的个数超过其最大容量时,我们需要将中间的元素(m/2)提起。然后根据规则继续插入。

当我们在删除元素的时候,要注意分好几中情况:

  1、 若删除的元素在叶子节点上,并且节点内不止有一个元素,那么我们可以直接删除。

  2、 若叶子节点中只有待删除元素一个,则删除后会出现不平衡现象,我们优先从其左右兄弟中借元素。若可以借,我们需要将兄弟节点和双亲节点中的关键字同时旋转。即兄弟节点中的关键字提到双亲结点中,双亲结点中的关键字下到改节点内。

   3、若兄弟节点没有可以借的元素,此时应该采用合并的方法。即将双亲中一关键字与被删除节点的一兄弟节点合并。若合并后导致父节点不平衡,则需要对父节点进行平衡处理。不过此时应注意旋转时将某些节点更换父节点。

 4、  若删除的元素不是叶子节点中的元素,则需要寻找其左边序列中最大的元素来代替待删除元素,并且将代替之后的树进行平衡调整,方法与以上例子相同。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • B树的定义 一棵m阶的B树满足下列条件: 树中每个结点至多有m个孩子。 除根结点和叶子结点外,其它每个结点至少有m...
    文档随手记阅读 13,667评论 0 25
  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 6,592评论 0 13
  • 原文链接 B树 1.前言: 动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(...
    非典型程序员阅读 1,255评论 0 3
  • B树 1.前言: 动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balan...
    铁甲依然在_978f阅读 1,524评论 0 4
  • B-树,就是B树,B树的原英文名是B-tree,所以很多翻译为B-树,就会很多人误以为B-树是一种树、B树是另外一...
    xx1994阅读 24,029评论 1 17

友情链接更多精彩内容