public static void Main()
        {
            AvlTree<int> tree1 = new AvlTree<int>();

            tree1.AddElement(10);
            tree1.AddElement(5);
            tree1.AddElement(15);
            tree1.AddElement(6);
            tree1.AddElement(4);
            tree1.AddElement(16);
            tree1.AddElement(14);
            tree1.AddElement(19);

            Console.WriteLine(tree1);

            foreach (var item in tree1)
            {
                //same as item.Value
                Console.WriteLine(item);
            }

            var copy = tree1.Clone();

            Console.WriteLine(copy);

            Console.WriteLine(tree1.FindElement(17));

            Console.WriteLine(tree1.FindElement(16));

            tree1.RemoveElement(19);

            Console.WriteLine(tree1);
        }
        public override void doTask()
        {
            var a = new AvlTree <int>();

            foreach (var value in new int[] { 10, 20, 30, 40, 50, 25, 100, 28, 140 })
            {
                a.Insert(value);
            }


            Console.WriteLine(" display tree a:");
            DisplayTree(a);


            var b = a.Clone();

            b.Insert(22);
            b.Insert(29);
            Console.WriteLine("\n\n\n display tree b:");
            DisplayTree(b);
            Console.WriteLine("\n\n height tree b: " + b.Height);


            Console.WriteLine("\n\n\n display tree a (again):");
            DisplayTree(a);


            var c = a.Clone();

            c.Clear();
            Console.WriteLine("\n\n\n display tree c:");
            DisplayTree(c);


            Console.WriteLine();
        }