多路查找树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】个孩子
- 全部叶子结点必须位于同一层
- 每个分支结点的子结点树都该结点的元素多一个
