示例#1
0
        public static void TestAvlTree()
        {
            AvlTree <int, int> avl = new AvlTree <int, int>();

            avl.Add(10, 10);
            avl.Add(9, 9);
            avl.Add(8, 8);
            avl.Add(7, 7);
            avl.Add(6, 6);
            avl.Add(5, 5);
            avl.Add(4, 4);
            avl.Add(3, 3);
            avl.Add(2, 2);
            avl.Add(1, 1);
            //avl.AddByRecursion(10, 10);
            //avl.AddByRecursion(9, 9);
            //avl.AddByRecursion(8, 8);
            //avl.AddByRecursion(7, 7);
            //avl.AddByRecursion(6, 6);
            //avl.AddByRecursion(5, 5);
            //avl.AddByRecursion(4, 4);
            //avl.AddByRecursion(3, 3);
            //avl.AddByRecursion(2, 2);
            //avl.AddByRecursion(1, 1);
            Console.WriteLine("avl size:" + avl.Size);
            Console.WriteLine("avl IsEmpty:" + avl.IsEmpty);
            Console.WriteLine("avl IsBalanceBinaryTree:" + avl.IsBalanceBinaryTree());
            Console.WriteLine("avl IsBinarySearchTree:" + avl.IsBinarySearchTree());
            Console.WriteLine("avl Contains 4:" + avl.Contains(4));
            Console.WriteLine("avl ContainsByRecursion 4:" + avl.ContainsByRecursion(4));
            avl.PreOrderTraversal();
            Console.WriteLine(avl.PreOrder.ToList().Translate());
            avl.PreOrderTraversalByRecursion();
            Console.WriteLine(avl.PreOrder.ToList().Translate());

            avl.SequentialTraversal();
            Console.WriteLine(avl.SequentialOrder.ToList().Translate());
            avl.SequentialTraversalByRecursion();
            Console.WriteLine(avl.SequentialOrder.ToList().Translate());

            avl.PostOrderTraversal();
            Console.WriteLine(avl.PostOrder.ToList().Translate());
            avl.PostOrderTraversalByRecursion();
            Console.WriteLine(avl.PostOrder.ToList().Translate());

            avl.LevelOrderTraversal();
            Console.WriteLine(avl.LevelOrder.ToList().Translate());
            avl.LevelOrderTraversalByRecursion();
            Console.WriteLine(avl.LevelOrder.ToList().Translate());
            //avl.Remove(4);
            //avl.Remove(6);
            //avl.Remove(7);
            //avl.Remove(9);
            //avl.RemoveByRecursion(4);
            //avl.RemoveByRecursion(6);
            //avl.RemoveByRecursion(7);
            //avl.RemoveByRecursion(9);
            avl.RemoveMax();
            avl.RemoveMin();
            avl.RemoveMaxByRecursion();
            avl.RemoveMinByRecursion();
            Console.WriteLine("avl size:" + avl.Size);
            Console.WriteLine("avl IsEmpty:" + avl.IsEmpty);
            Console.WriteLine("avl IsBalanceBinaryTree:" + avl.IsBalanceBinaryTree());
            Console.WriteLine("avl IsBinarySearchTree:" + avl.IsBinarySearchTree());
            Console.WriteLine("avl Contains 4:" + avl.Contains(4));
            Console.WriteLine("avl ContainsByRecursion 4:" + avl.ContainsByRecursion(4));
        }