adt: Union for interval trees

This commit is contained in:
Anthony Romano
2017-06-07 18:03:58 -07:00
parent 822473bc31
commit 5c7efaa288

View File

@@ -485,6 +485,15 @@ func (ivt *IntervalTree) Stab(iv Interval) (ivs []*IntervalValue) {
return ivs
}
// Union merges a given interval tree into the receiver.
func (ivt *IntervalTree) Union(inIvt IntervalTree, ivl Interval) {
f := func(n *IntervalValue) bool {
ivt.Insert(n.Ivl, n.Val)
return true
}
inIvt.Visit(ivl, f)
}
type StringComparable string
func (s StringComparable) Compare(c Comparable) int {