B+ 树制备(指北)
从小学期开始之后,我很反感没有从零开始的完整教程却让我们完整地学一个东西这件事。回想起当时写 B+ 树也是这样,没有讲得比较清楚的教程,走了很多弯路,最后几乎都是自己推出来的。我希望这个教程能够让下几届同学学习 B+ 树的路上少一点痛苦。
先上一个我认为最有用的东西:可视化 B+ 树。注意一下树的阶数(现在可以简单理解为最多子结点数),阶数的奇偶性会带来差异,而且阶数过小(\(2, 3\) 之类)B+ 树的行为会比较奇怪。
我们按照 https://acm.sjtu.edu.cn/OnlineJudge/problem/1837 的需求来完成 B+ 树。这道题中 key 到 value 的映射不是一对一的,导致我们必须对一般的 B+ 树做出一些改动。如果 key 到 value 的映射是一对一的,你不应该在内结点(Internal nodes,你马上就会知道它是什么)中存储 value。

浙公网安备 33010602011771号