@Override public boolean add(T target) { return add(root, target, defaultAlpha); }
public boolean add(TreeNode<E,T> node, T target) { return add(node, target, defaultAlpha); }
public boolean addNonOverlapping(T target) { if (overlaps(target)) return false; add(target); return true; }
public boolean addNonNested(T target) { if (containsInterval(target, false)) return false; add(target); return true; }
@Override public boolean add(T target) { return add(root, target, defaultAlpha); }
@Override public boolean add(T target) { return add(root, target, defaultAlpha); }
public boolean add(TreeNode<E,T> node, T target) { return add(node, target, defaultAlpha); }
@Override public boolean add(T target) { return add(root, target, defaultAlpha); }
public boolean add(TreeNode<E,T> node, T target) { return add(node, target, defaultAlpha); }
public boolean add(TreeNode<E,T> node, T target) { return add(node, target, defaultAlpha); }
public boolean addNonOverlapping(T target) { if (overlaps(target)) return false; add(target); return true; }
public boolean addNonOverlapping(T target) { if (overlaps(target)) return false; add(target); return true; }
public boolean addNonNested(T target) { if (containsInterval(target, false)) return false; add(target); return true; }
public boolean addNonOverlapping(T target) { if (overlaps(target)) return false; add(target); return true; }
public boolean addNonNested(T target) { if (containsInterval(target, false)) return false; add(target); return true; }
public boolean addNonNested(T target) { if (containsInterval(target, false)) return false; add(target); return true; }
public boolean addNonOverlapping(T target) { if (overlaps(target)) return false; add(target); return true; }
public void add(T target) { if (target == null) return; if (value == null) { this.value = target; this.maxEnd = target.getInterval().getEnd(); this.size = 1; } else { this.maxEnd = Interval.max(maxEnd, target.getInterval().getEnd()); this.size++; if (target.getInterval().getBegin().compareTo(value.getInterval().getBegin()) <= 0) { // Should go on left if (left == null) { left = new IntervalTree<E,T>(); } left.add(target); } else { // Should go on right if (right == null) { right = new IntervalTree<E,T>(); } right.add(target); } } }