码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构(B树)

时间:2020-05-13 20:27:58      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:之间   查找树   排序   ros   span   包含   soft   不同的   size   

多路查找树

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

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树)

标签:之间   查找树   排序   ros   span   包含   soft   不同的   size   

原文地址:https://www.cnblogs.com/TianLiang-2000/p/12884270.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!