数据结构(B树)

Posted tianliang-2000

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构(B树)相关的知识,希望对你有一定的参考价值。

多路查找树

  特点:没个结点的孩子可以有多与两个孩子,且每个结点处可存放多个元素,所以元素之间存在某种特定的排序关系

2-3树

  • 多路查找树中每个结点都具有两个或三个子结点,称为2-3树。
  • 一个结点拥有两个子结点,称为2结点,拥有三个子结点,称为3结点
  • 与二叉排序树类似,左子树包含元素小于结点元素,右子树大于结点元素
  • 与二叉树不同的是,这个2结点要么没有子结点,要有就应该有两个孩子,且要求叶子结点都要在同层次上高度平衡

  插入:

  • 空树,插入时直接插入2结点作为根结点
  • 插入位置为二节点,将二结点变为三结点
  • 插入的叶子结点是三节点,叶子的双亲是二结点;那就要扩展双亲为三结点,并把这个三结点拆分为两个二结点(一个存储到双亲中,另外一个和插入元素作为双亲的两颗子树)
  • 当初入叶子是三节点,并且向上的双亲都是三结点,则这时需要从下向上拆分,增加树的高度

技术图片

  删除:

  • 删除元素位于三结点叶子结点,直接将该三结点变为二结点即可
  • 删除元素位于二结点:双亲为二结点,且兄弟也是二节点
  • 删除元素位于二结点:双亲为二结点,且兄弟为三结点
  • 删除元素位于二结点:双亲为三结点
  • 删除结点为一满二叉树的情况(减层)
  • 删除的是一个二结点的双亲结点(子结点有无三结点是两种不同的情况)
  • 删除的是一个三结点的双亲结点(子结点有无三结点是两种不同的情况)

技术图片

B树

  是一种平衡的多路查找树,2-3树和2-3-4树都是B树特例,结点最大子树数目称为B树的阶

一个m接的B树具有如下属性

  • 非叶子结点至少有 m/2 颗子树(求上限),最少有m个子树(所以6阶B树最少有3颗子树)
  • 每一个非根的分支结点,都有【k-1】个元素(关键字)和【k】个孩子
  • 所有叶子结点必须位于同一层
  • 每一个分支结点的子结点树都该结点的元素多一个

技术图片

 

以上是关于数据结构(B树)的主要内容,如果未能解决你的问题,请参考以下文章

数据结构与算法:树 2-3树,2-3-4树,B树 B+树 B*树 (了解)

数据结构B树或者B+树怎么构造 求告知

数据结构——二叉搜索树B树B-树

面试问题之数据结构与算法:B树B+树B*树

数据结构与算法17—B树(BB+B*)

一文完全搞懂B树B-树B+树