m路搜索树
定义:一课m路搜索树是一课空树,或者满足以下性质:
(1)根节点最多有m棵子树,并具有如下数据结构:
n,P0,(K1,P1),(K2,P2),....,(Kn,Pn)
其中n是关键码个数,Pi是指向子树的指针,0<=i<=n<m,Ki是关键码,1<=i<=n<m
(2)Ki<Ki+1,1<=i<n
(3)在子树Pi中所有的关键码都小于Ki+1,且大于Ki,0<i<n
(4)在子树Pn中所有关键码都大于Kn,而子树P0中的所有关键码都小于K1
(5)子树Pi也是m路搜索树
例如:
结点a的格式为2,b,(20,c),(40,d) 结点c的格式为2,0,(25,0)(30,e)
B树
定义:一课空树或者一棵平衡m路搜索树并满足下列性质
(1)根节点至少有两个子女
(2)除根结点以外的所有结点(不包括失败的结点)知道有(m/2)向上取整个子女
(3)所有的失败结点都位于同一层
例如:
B树的插入:1.当结点中有少于m-1个关键码时可以直接将关键码加入到结点中
2.当结点中已经有m-1个关键码时,插入时,需要做分裂操作,将多的结点放入子结点中,并且B树的性质不能改变
例如:对插入139后,分裂成
B树的删除:1.删除某个结点不改变B树的性质则直接删除
2.删除会改变B树的性质,则需要像B树插入时,做一些调整,使B树的性质不改变
B+树
定义:B+树是B树的特殊情况,与B树的不同之处在于:
(1)所有关键码都存放在叶结点中,上层非叶结点的关键码是其子孙树中的最小或者最大关键码
(2)叶结点包含了全部关键码,叶结点本身按关键码从小到大顺序链接
例如:
摘自:<<数据结构>>