数据结构(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树)的主要内容,如果未能解决你的问题,请参考以下文章