数据结构(B树)

多路查找树spa

  特色:没个结点的孩子能够有多与两个孩子,且每一个结点处可存放多个元素,因此元素之间存在某种特定的排序关系3d

2-3树blog

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

  插入:排序

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

  删除:扩展

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

B树二叉树

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

一个m接的B树具备以下属性d3

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

相关文章
相关标签/搜索