Example #1
0
        static void Main(string[] args)
        {
            BinaryTree <int> integerTree = new BinaryTree <int>();

            Random rand = new Random();

            for (int i = 0; i < 20; i++)
            {
                int value = rand.Next(100);
                Console.WriteLine("Добавление {0}", value);
                integerTree.Add(value);
            }

            Console.WriteLine();
            Console.WriteLine("Количество узлов: {0}", integerTree.Count);
            Console.WriteLine("Наибольшее значение: {0}", integerTree.MaxValue);
            Console.WriteLine("Наименьшее значение: {0}", integerTree.MinValue);
            Console.WriteLine("Обход в ширину:");
            Console.WriteLine(string.Join(" ", integerTree.Preorder()));
            Console.WriteLine("Обход в глубину:");
            Console.WriteLine(string.Join(" ", integerTree.Postorder()));
            Console.WriteLine("Симметричный обход:");
            Console.WriteLine(string.Join(" ", integerTree.Inorder()));
            Console.WriteLine("Обход с рекурсией:");
            Console.WriteLine(string.Join(" ", integerTree.Levelorder()));

            Console.WriteLine();
            integerTree.PrintTree();
            Console.WriteLine();

            Console.ReadKey(true);
        }
Example #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("TREE - Binary");
            BinaryTree tree = new BinaryTree();

            tree.Add(5);
            tree.Add(7);
            tree.Add(2);
            tree.Add(1);
            tree.Add(6);
            tree.Add(3);

            //traversal
            //Depth first
            Console.WriteLine("\nPreorder");
            tree.Preorder(tree.Root, 0);
            Console.WriteLine("\nPostorder");
            tree.Postorder(tree.Root, 0);
            Console.WriteLine("\nInorder");
            tree.Inorder(tree.Root, 0);

            //Breadth first
            Console.WriteLine("\nUsing given level");
            DateTime startTime = DateTime.Now;

            tree.LevelOrder(tree.Root);
            Console.Write($" in {(DateTime.Now - startTime).TotalSeconds}s\n");

            Console.WriteLine("\nUsing queue");
            startTime = DateTime.Now;
            tree.LevelOrderWithQueue(tree.Root);
            Console.Write($" in {(DateTime.Now - startTime).TotalSeconds}s\n");

            //Search
            Console.WriteLine("\nSearching (Preorder)");
            string result = tree.Search(tree.Root, 6) != null ? "Found" : "Not found";

            Console.WriteLine($"Search for 6: {result}");
            result = tree.Search(tree.Root, 9) != null ? "Found" : "Not found";
            Console.WriteLine($"Search for 9: {result}");
        }