B树和B+树总结

1.B树定义

解析:B树是一种平衡的多路查找树,一棵m阶的B树,或为空树,或为满足下列特性的m叉树,如下所示:

[1]树中每个结点至多有m棵子树;

[2]若根结点不是叶子结点,则至少有两颗子树;

[3]除根之外的所有非终端结点;

[4]所有的非终端结点中包含信息数据;

[5]所有的叶子结点都出现在同一层次上,并且不带信息[可以看作是外部结点或查找失败的结点,实际上这些结点不存在,指向这些结点的指针为空]。

说明:结点最大的孩子数目称为B树的阶。2-3树和2-3-4树都是B树的特例。2-3树是3阶B树,2-3-4树是4阶B树。

 

2.B树插入

解析:

[1]一棵2-3树

[2]插入30之后

[3]插入26之后

[4]插入85之后

[5]插入7之后

 

3.B树查找

解析:在B树上进行查找的过程是一个顺指针查找结点和在结点的关键字中进行查找交叉进行的过程。
 

4.B树删除

解析:若在B-树上删除一个关键字,则首先应找到该关键字所在结点,并从中删除之,若该结点为最下层的非终端结点,且其中的关键字数目不少于ceil(m/2),则删除完成,否则要进行“合并”结点的操作。

 

5.B+树定义

解析:B+树是B树的变形树。一棵m阶的B+树和m阶的B树的差异,如下所示:

[1]有n棵子树的结点中含有n个关键字;

[2]所有的叶子结点中包含了全部关键字的信息,及指向含有这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大的顺序链接。

[3]所有的非终端结点可以看成是索引部分,结点中仅含有其子树根结点中最大[或最小]关键字。

说明:通常在B+树上有两个头指针,一个指向根节点,另一个指向关键字最小的叶子节点。因此可以对B+树进行两种查找运算:一种是从最小关键字起顺序查找,另一种是从根节点开始,进行随机查找。在B+树上进行随机查找、插入和删除的过程基本上与B树类似。只是在查找时,若非终端结点上的关键字等于给定值,并不终止,而是继续向下直到叶子结点。因此,在B+树中,不管查找成功与否,每次查找都是走了一条从根到叶子结点的路径。

 

参考文献:

[1] 数据结构[C语言版]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NLP工程化

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值