[PTA] Self-printable B+ Tree

[PTA] Self-printable B+ Tree

最近做了PTA的Self-printable B+ Tree,发现这道题的题目描述有诸多不明确的地方。在进行了各种尝试之后,终于摸清了本题所要求的B+树的插入规则,特此写下来记录一下,以给做这道题且被卡住的同学指明方向。

关于“B+ tree of order 3”

在这道题中,“B+ tree of order 3”指的是:叶子节点最多存三个key,索引节点最多存两个index,并不是树中所有节点都能存三个值。当然,B+树可以是所有节点都存三个值的,只是这道题的B+树这么要求了而已。这一点可以从样例中分析得到。

这意味着,插入的时候,如果一个叶子节点迎来了它的第四个值,就要进行分裂;如果一个索引节点迎来了它的第三个index,就要进行分裂。

关于插入的位置

经过尝试后得出结论:尽量靠左插入

也就是说,如果向叶子节点为[1,2][3,4][6,7]的B+树中插入一个5,那么结果应该为[1,2][3,4,5][6,7]

而不是[1,2][3,4][5,6,7]。其实想来这也很合理,因为靠左插入再结合下面的索引规则,就不用对B+树的索引值进行维护了。这样插入永远不会破坏B+树的索引。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值