Esempio n. 1
0
        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));
        }
Esempio n. 2
0
 public void SetIntervalTreeNodeRight(IntervalTreeNode intervalTreeNode)
 {
     rightIntervalTreeNode = intervalTreeNode;
 }
Esempio n. 3
0
 public void SetIntervalTreeNodeLeft(IntervalTreeNode intervalTreeNode)
 {
     leftIntervalTreeNode = intervalTreeNode;
 }
Esempio n. 4
0
 public void SetIntervalTreeRoot(IntervalTreeNode intervalTreeNode)
 {
     root = intervalTreeNode;
 }
Esempio n. 5
0
 public IntervalTree(IntervalTreeNode intervalTreeNode)
 {
     root = intervalTreeNode;
 }