Tree with integer addition - Henrik-Peters/Multi-Level-Segment-Tree GitHub Wiki
Segment tree example for the sum of integers:
object IntegerAddition extends Monoid[Int] {
def fold(a: Int, b: Int): Int = a + b
def identity: Int = 0
}
val data = List(2, 3, 4, 7, 8, 9)
val tree: SegmentTree[Int] = SegmentTree.fromSequence(data, IntegerAddition)
tree.dumpTree("sumtree-example")
This snippet will produce this dump (legend was added for better readability):