多路平衡查找树
。树中每个节点至多有 m 棵子树
;分支节点至少有两棵子树
;根节点外的分支节点至少有 ⌈m/2⌉ 棵子树
;所有叶节点在同一层中,并且不带信息
。B 树是所有节点的平衡因子等于 0 的多路平衡查找树
;节点的孩子个数为结点关键字数加一
;根节点无关键字相当于没有子树,也即是空树;若根节点有关键字,则子树必大于两棵
;根节点外的分支节点至少有 ⌈m/2⌉-1 个关键字,即有⌈m/2⌉ 棵子树
;节点中关键字自左向右递增,关键字两侧均有指向子树的指针,左边指针所指子树的所有关键字均小于该关键字,右边指针所指的子树的关键字均大于该关键字
。所有叶节点在最深一层,代表查找失败的位置
。B树中的大部分操作所需的磁盘存取次数与B树的高度成正比
。第一步确定节点,第二步在节点内确定关键字
。定位和插入
两步。最低层中的某个非叶节点
,插入位置必须是最低层的某个非叶节点
。取一个新节点,在插入关键字的后的原节点,从中间位置( ⌈m/2⌉ )将其中的关键字分为两部分,左部分的关键字放在原节点,右部分的关键字放在新节点,中间位置(⌈m/2⌉)的关键字插入原节点的父节点,若父节点进行插入后也导致关键字数目超过上限,则继续进行分裂,直到根节点为止,此时 B 树高度增 1
。删除后的节点的中得关键字个数>= ⌈m/2⌉-1
,也就是可能需要进行节点的“合并”。删除可分为两种情形:删除的结点不在终端结点和在终端结点
。k 的前驱 p 来代替 k,然后在相应的结点中删除 p
,此时 p 必定落在某个终端结点中,于是就转换成了第二种情形。关键字个数大于 m/2 的最小整数
,则直接删除关键字。关键字个数恰好等于 m/2 的最小整数减一
,且该结点相邻的或左或右兄弟的关键字个数大于 m/2 的最小整数
,则可进行父子换位法
,即需要调整该节点、或左或右兄弟结点极其双亲结点
,以达到新的平衡。③ 兄弟不够借:若要执行关键字删除的结点与其左右相邻兄弟结点的关键字个数都只是等于 m/2 的最小整数减一
,则将删除关键字后的结点与其或左或右兄弟以及双亲结点中的关键字进行合并。
根节点且关键字个数减到了 0,则直接将根节点删除,合并后的新节点成为根
;若不是根节点,则双亲结点需要与其兄弟节点进行调整或合并操作,重复知道符合 B 树的要求。B 树的变形树
。本文发布于:2024-02-04 23:56:25,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170719314460928.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |