예제 #1
0
        private void RebBlackDelete(IList <int> datas)
        {
            var tree = new RedBlackTree <int>();

            foreach (var data in datas)
            {
                var node = new RedBlackTreeNode <int>(data);
                tree.Insert(node);
            }
            Console.WriteLine("new tree data");
            foreach (var d in datas)
            {
                Console.Write("{0}  ", d);
            }
            Console.WriteLine();

            Console.WriteLine("new tree ");
            PrintTree(tree);

            tree.CheckRedBlackTree();

            var count = datas.Count();

            for (int i = 0; i < count; i++)
            {
                var data = datas[i];

                var node = tree.Search(tree.Root, data);

                Console.WriteLine("delete node: {0}", node.Data);
                Console.WriteLine();


                tree.Delete(node);
                PrintTree(tree);
                tree.CheckRedBlackTree();
            }
        }
예제 #2
0
        private void RebBlackInsert(IList <int> datas)
        {
            var tree = new RedBlackTree <int>();

            foreach (var data in datas)
            {
                var node = new RedBlackTreeNode <int>(data);

                Console.WriteLine("insert node {0}", data);

                tree.Insert(node);

                tree.CheckRedBlackTree();
            }
        }