我正在寻找一种数据结构,它可以像段树一样进行范围求和,但可以支持随时添加新数据而无需重建整个树。我相信我可以拼凑一个可以动态处理添加新数据的部分,但它不会很漂亮。
如果有帮助,我将始终“附加”数据,因为它是基于时间的。
例子:
Order[time=0, quantity=1]
Order[time=1, quantity=2]
Order[time=2, quantity=4]
Order[time=3, quantity=2]
范围和段树:
sum[0->3=9]
sum[0->1=3] sum[2->3=6]
time0=1 time1=2 time2=4 time3=2
如果我添加上面的树会发生什么Order[time=4, quantity=3]
sum[0->4=12]
sum[0->3=9] sum[4->4=3]
sum[0->1=3] sum[2->3=6] sum[4->4=3]
time0=1 time1=2 time2=4 time3=2 time4=3
我当然可以使用上面的方法,但我希望有更好的方法。