Пример #1
0
        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);
        }
Пример #2
0
 public Enumerator(RedBlackTree <T> t, T start)
 {
     tree       = t;
     node       = tree.Find(start);
     this.start = true;
 }
Пример #3
0
 public Enumerator(RedBlackTree <T> t)
 {
     tree = t;
     Reset();
 }