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); }
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}"); }