最大化每个b树节点的密钥数

时间:2018-02-09 19:40:56

标签: c++ b-tree

我实现了一个只接受唯一键的b树。我正在尝试优化代码,以便每个节点都存储了最大数字密钥。

例如,如果我按顺序插入1,2,3,4,5,6 ...(t = 3)

插入5后,节点将被拆分......

     (3)
    /   \
(1|2)  (4|5)

由于左子节点不能再输入数字,该节点将永远包含最多2个节点(如果我一直在最后添加键)。

如果我按顺序添加按键,结果可能会像这样......

                    9
                 /     \
    (3       6   )      (   12       15      )
   /   \       \         /        \        \
(1|2)  (4|5)   (7|8)   (10|11)  (13|14)  (16|17)

我考虑过借用neigbhour的键,或者将max key节点从计算拆分位置中拆分出来,但似乎这样做会影响树的平衡。

我这样做的原因是为了更有限的嵌入式硬件,尽可能降低内存。

如果有更好的数据结构建议,请告诉我。

任何建议都会很棒!
谢谢!

0 个答案:

没有答案