net.cscott.jutil

Class IntervalTree

public class IntervalTree extends RedBlackTree

An IntervalTree is a mutable collection of Intervals. IntervalTrees support efficient lookup of overlapping elements.

Every element in an IntervalTree must be an Interval. Thus element lookup is done based upon Intervals, not on the datum assocatied with each Interval.

The intervals maintained by this structure are considered to be closed intervals.

To make use of an IntervalTree cleaner, a convenience method, addInterval is provided.

See Also: IntervalTree "CLR section 15.3, (page 290)."

Nested Class Summary
static classIntervalTree.Interval
Immutable record representing a closed interval [low,high] holding an object obj.
Constructor Summary
IntervalTree()
Constructs a new empty IntervalTree.
Method Summary
IntervalTree.IntervaladdInterval(Object datum, int low, int high)
Constructs a new Interval i and adds i to this.
IteratorallOverlapping(IntervalTree.Interval i)
Returns an Iterator over Intervals that yields every interval in this that overlaps i.
static voidmain(String[] args)
protected NodemakeNode(Object o)
requires: o is-a Interval.
IntervalTree.IntervalsearchOverlapping(IntervalTree.Interval i)
Returns some Interval in this which overlaps the bounds defined by the argument interval i, or null if no such interval exists.
protected NodesetLeft(Node p, Node l)
protected NodesetParent(Node c, Node p)
protected NodesetRight(Node p, Node r)

Constructor Detail

IntervalTree

public IntervalTree()
Constructs a new empty IntervalTree.

Method Detail

addInterval

public IntervalTree.Interval addInterval(Object datum, int low, int high)
Constructs a new Interval i and adds i to this. Convenience method. Requires: high > low. datum can be null.

allOverlapping

public Iterator allOverlapping(IntervalTree.Interval i)
Returns an Iterator over Intervals that yields every interval in this that overlaps i.

main

public static void main(String[] args)

makeNode

protected Node makeNode(Object o)
requires: o is-a Interval.

searchOverlapping

public IntervalTree.Interval searchOverlapping(IntervalTree.Interval i)
Returns some Interval in this which overlaps the bounds defined by the argument interval i, or null if no such interval exists.

This operation is named "Interval-Search" in CLR

See Also: "CLR, pg 291"

setLeft

protected Node setLeft(Node p, Node l)

setParent

protected Node setParent(Node c, Node p)

setRight

protected Node setRight(Node p, Node r)
Copyright © 2003 C. Scott Ananian