我实现了一个只接受唯一键的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节点从计算拆分位置中拆分出来,但似乎这样做会影响树的平衡。
我这样做的原因是为了更有限的嵌入式硬件,尽可能降低内存。
如果有更好的数据结构建议,请告诉我。
任何建议都会很棒!
谢谢!