Package io.keikaiex.util
Class IntervalTree<T>
- java.lang.Object
-
- io.keikaiex.util.RBTree<java.lang.Integer,java.lang.Integer>
-
- io.keikaiex.util.IntervalTree<T>
-
- All Implemented Interfaces:
java.io.Serializable
public class IntervalTree<T> extends RBTree<java.lang.Integer,java.lang.Integer>
An extensible Interval Tree that you can keep payload of type [T] in Interval. https://en.wikipedia.org/wiki/Interval_tree- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description IntervalTree(int maxLimit)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleancanDeleteNode(io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> n, java.lang.Object ctx)java.util.Collection<Interval<T>>contained(Interval<T> interval)java.util.Collection<Interval<T>>contains(Interval<T> interval)Interval<T>deleteInterval(Interval<T> interval, java.lang.Object context)protected voidfixUp(java.util.List<io.keikaiex.util.RBTree.Traversal<java.lang.Integer,java.lang.Integer>> lineal)protected voidinsertDuplicate(io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> original, io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> newone, java.lang.Object context)Interval<T>insertInterval(Interval<T> interval, java.lang.Object context)protected voidinsertLeft(io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> parent, io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> child)protected voidinsertRight(io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> parent, io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> child)protected voidleftJumpUp(io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> g)java.util.Collection<Interval<T>>overlaps(Interval<T> interval)protected voidreplaceNode(io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> target, io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> substitute)protected voidrightJumpUp(io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> g)protected voidrotateLeft(io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> g)protected voidrotateRight(io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> g)Interval<T>searchInterval(Interval<T> interval)
-
-
-
Method Detail
-
insertDuplicate
protected void insertDuplicate(io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> original, io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> newone, java.lang.Object context)- Overrides:
insertDuplicatein classRBTree<java.lang.Integer,java.lang.Integer>
-
insertLeft
protected void insertLeft(io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> parent, io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> child)- Overrides:
insertLeftin classRBTree<java.lang.Integer,java.lang.Integer>
-
insertRight
protected void insertRight(io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> parent, io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> child)- Overrides:
insertRightin classRBTree<java.lang.Integer,java.lang.Integer>
-
rightJumpUp
protected void rightJumpUp(io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> g)
- Overrides:
rightJumpUpin classRBTree<java.lang.Integer,java.lang.Integer>
-
leftJumpUp
protected void leftJumpUp(io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> g)
- Overrides:
leftJumpUpin classRBTree<java.lang.Integer,java.lang.Integer>
-
rotateRight
protected void rotateRight(io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> g)
- Overrides:
rotateRightin classRBTree<java.lang.Integer,java.lang.Integer>
-
rotateLeft
protected void rotateLeft(io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> g)
- Overrides:
rotateLeftin classRBTree<java.lang.Integer,java.lang.Integer>
-
fixUp
protected void fixUp(java.util.List<io.keikaiex.util.RBTree.Traversal<java.lang.Integer,java.lang.Integer>> lineal)
-
replaceNode
protected void replaceNode(io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> target, io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> substitute)
-
canDeleteNode
protected boolean canDeleteNode(io.keikaiex.util.RBNode<java.lang.Integer,java.lang.Integer> n, java.lang.Object ctx)
-
-