public RedBlackTree <T> GetSubTreeMatching(Match comp) { Node n = root; while (n != nil) { int c = comp(n.element); if (c == 0) { break; } n = c == -1 ? n.l : n.r; } if (n == nil) { return(new RedBlackTree <T>(comparere)); } RedBlackTree <T> returner = new RedBlackTree <T>(comparere); returner.root = CloneShallow(n, returner.nil); returner.root.color = Color.Black; //returner.InvariantCheck(); return(returner); }
public Enumerator(RedBlackTree <T> t, T start) { tree = t; node = tree.Find(start); this.start = true; }
public Enumerator(RedBlackTree <T> t) { tree = t; Reset(); }