public IntervalTreeNode GetOverlappingInterval(IntervalTreeNode intervalTreeNode, Interval interval) { if (intervalTreeNode == null) { return(null); } //If the interval is outright overlapping with root if (interval.Overlapping(intervalTreeNode.GetIntervalNodeInterval(), interval)) { return(intervalTreeNode); } if (intervalTreeNode.GetIntervalTreeNodeLeft() != null && intervalTreeNode.GetIntervalTreeNodeLeft(). GetIntervalMaxLimit() >= interval.GetIntervalStartPosition()) { return(GetOverlappingInterval( intervalTreeNode.GetIntervalTreeNodeLeft(), interval)); } return(GetOverlappingInterval(intervalTreeNode.GetIntervalTreeNodeRight(), interval)); }
public void SetIntervalTreeNodeRight(IntervalTreeNode intervalTreeNode) { rightIntervalTreeNode = intervalTreeNode; }
public void SetIntervalTreeNodeLeft(IntervalTreeNode intervalTreeNode) { leftIntervalTreeNode = intervalTreeNode; }
public void SetIntervalTreeRoot(IntervalTreeNode intervalTreeNode) { root = intervalTreeNode; }
public IntervalTree(IntervalTreeNode intervalTreeNode) { root = intervalTreeNode; }