我正在复习明天的考试,被一道题卡住了。我必须画一个有效的b树,其中M = 4, L = 3包含1-25的值。问题是我不能让我的树看起来像答案。答案树看起来像这样:
9 14 22
/ | |
4 7 12 17 20 24
/ | / / | /
1 4 7 9 12 14 17 20 22 24
2 5 8 10 13 15 18 21 23 25
3 6 11 16 19 21
对不起,如果这是难以阅读。也许我抄错了答案,但有人能确认这是否是正确的答案吗?如果是这样,这个答案是如何得出的?
看起来您在谈论B+树而不是B树,并且有一个小错别字:您在叶子[20,21,21]中重复了键21。如你所说,订单是4。
答案是一个有效的B+树,但不是你按顺序加1-25的值得到的那个。问题是给出了键的具体顺序,还是让你自己决定?除了一个漫长的试验和错误过程,我不确定您将如何确定顺序,但您可以通过使用这里的演示页面进行尝试:
http://goneill.co.nz/btree-demo.php如果你想尝试不同的插入序列,你最好下载离线版本并编辑Hardcoded()函数:
http://goneill.co.nz/btree.php这些都是用JavaScript写的,可能对你没什么用