セグメント ツリーのような範囲合計を実行できるが、ツリー全体を再構築することなく、いつでも新しいデータの追加をサポートできるデータ構造を探しています。新しいデータの動的な追加を処理できるセグメントを一緒にハックできると思いますが、それはきれいではありません。
それが役立つ場合は、時間ベースであるため、常にデータを「追加」します。
例:
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
確かに上記のアプローチを使用できますが、もっと良い方法があることを願っています。