private Entry getCeilingEntry(Object key) { Entry e = root; if (e == null) return null; for (;;) { int diff = compare(key, e.key, comparator); if (diff < 0) { if (e.left != null) e = e.left; else return e; } else if (diff > 0) { if (e.right != null) { e = e.right; } else { Entry p = e.parent; while (p != null && e == p.right) { e = p; p = p.parent; } return p; } } else return e; } }
private Entry getHigherEntry(Object key) { Entry t = root; if (t == null) return null; for (;;) { int diff = compare(key, t.key, comparator); if (diff < 0) { if (t.left != null) t = t.left; else return t; } else { if (t.right != null) { t = t.right; } else { Entry parent = t.parent; while (parent != null && t == parent.right) { t = parent; parent = parent.parent; } return parent; } } } }
private Entry getLowerEntry(Object key) { Entry e = root; if (e == null) return null; for (;;) { int diff = compare(key, e.key, comparator); if (diff > 0) { if (e.right != null) e = e.right; else return e; } else { if (e.left != null) { e = e.left; } else { Entry p = e.parent; while (p != null && e == p.left) { e = p; p = p.parent; } return p; } } } }
private Entry getHigherEntry(Object key) { Entry t = root; if (t == null) return null; for (;;) { int diff = compare(key, t.key, comparator); if (diff < 0) { if (t.left != null) t = t.left; else return t; } else { if (t.right != null) { t = t.right; } else { Entry parent = t.parent; while (parent != null && t == parent.right) { t = parent; parent = parent.parent; } return parent; } } } }
private Entry getFloorEntry(Object key) { Entry e = root; if (e == null) return null; for (;;) { int diff = compare(key, e.key, comparator); if (diff > 0) { if (e.right != null) e = e.right; else return e; } else if (diff < 0) { if (e.left != null) { e = e.left; } else { Entry p = e.parent; while (p != null && e == p.left) { e = p; p = p.parent; } return p; } } else return e; } }
private Entry getFloorEntry(Object key) { Entry e = root; if (e == null) return null; for (;;) { int diff = compare(key, e.key, comparator); if (diff > 0) { if (e.right != null) e = e.right; else return e; } else if (diff < 0) { if (e.left != null) { e = e.left; } else { Entry p = e.parent; while (p != null && e == p.left) { e = p; p = p.parent; } return p; } } else return e; } }
private Entry getLowerEntry(Object key) { Entry e = root; if (e == null) return null; for (;;) { int diff = compare(key, e.key, comparator); if (diff > 0) { if (e.right != null) e = e.right; else return e; } else { if (e.left != null) { e = e.left; } else { Entry p = e.parent; while (p != null && e == p.left) { e = p; p = p.parent; } return p; } } } }
private Entry getLowerEntry(Object key) { Entry e = root; if (e == null) return null; for (;;) { int diff = compare(key, e.key, comparator); if (diff > 0) { if (e.right != null) e = e.right; else return e; } else { if (e.left != null) { e = e.left; } else { Entry p = e.parent; while (p != null && e == p.left) { e = p; p = p.parent; } return p; } } } }
private Entry getHigherEntry(Object key) { Entry t = root; if (t == null) return null; for (;;) { int diff = compare(key, t.key, comparator); if (diff < 0) { if (t.left != null) t = t.left; else return t; } else { if (t.right != null) { t = t.right; } else { Entry parent = t.parent; while (parent != null && t == parent.right) { t = parent; parent = parent.parent; } return parent; } } } }
private Entry getCeilingEntry(Object key) { Entry e = root; if (e == null) return null; for (;;) { int diff = compare(key, e.key, comparator); if (diff < 0) { if (e.left != null) e = e.left; else return e; } else if (diff > 0) { if (e.right != null) { e = e.right; } else { Entry p = e.parent; while (p != null && e == p.right) { e = p; p = p.parent; } return p; } } else return e; } }
private Entry getCeilingEntry(Object key) { Entry e = root; if (e == null) return null; for (;;) { int diff = compare(key, e.key, comparator); if (diff < 0) { if (e.left != null) e = e.left; else return e; } else if (diff > 0) { if (e.right != null) { e = e.right; } else { Entry p = e.parent; while (p != null && e == p.right) { e = p; p = p.parent; } return p; } } else return e; } }
private Entry getFloorEntry(Object key) { Entry e = root; if (e == null) return null; for (;;) { int diff = compare(key, e.key, comparator); if (diff > 0) { if (e.right != null) e = e.right; else return e; } else if (diff < 0) { if (e.left != null) { e = e.left; } else { Entry p = e.parent; while (p != null && e == p.left) { e = p; p = p.parent; } return p; } } else return e; } }
Entry t = root; for (;;) { int diff = compare(key, t.getKey(), comparator); if (diff == 0) return t.setValue(value); else if (diff <= 0) {
Entry t = root; for (;;) { int diff = compare(key, t.getKey(), comparator); if (diff == 0) return t.setValue(value); else if (diff <= 0) {
Entry t = root; for (;;) { int diff = compare(key, t.getKey(), comparator); if (diff == 0) return t.setValue(value); else if (diff <= 0) {