static void Main(string[] args) { var tree = new Tree <int>(); void FastAdd() { tree.Add("Катя", 4444, 16); tree.Add("Олег", 1111, 18); tree.Add("Маша", 2222, 17); tree.Add("Никита", 6666, 34); tree.Add("Федр", 5555, 34); tree.Add("Зоя", 3333, 34); tree.Add("Ира", 7777, 20); tree.Add("Анастасия", 9999, 20); } void Split() { Console.WriteLine("------------------------------------------------------------------"); } //Print(tree.Root, 0); //Console.WriteLine("-----------------------------"); //Console.WriteLine($"количество: {tree.Count}"); //tree = NewTreeByPasId(tree); //Print(tree.Root, 0); RBTree rbtTree = new RBTree(); string name; int pasId; int age; int counter = 0; Date temp; //PrintRB(rbtTree.rootnode, 0); Console.WriteLine($"количество: {rbtTree.Count}"); while (true) { Console.WriteLine("11- Быстрое заполнение дерева"); Console.WriteLine("1- Печать дерева"); Console.WriteLine("2- Найти средний возраст"); Console.WriteLine("3- Сделать 3 разных обхода дерева"); Console.WriteLine("4- Удаление..."); Console.WriteLine("5- Пересыпать дерево по id"); Console.WriteLine("6- Переделать дерево в красно-черное"); Console.WriteLine("7- Вывести красно-черное дерево"); Console.WriteLine("8- Сделать 3 обхода красно-черного дерева"); Console.WriteLine("9- Добавить елемент в красночерное дерево"); Console.WriteLine("10- Удалить елмент с красночерного дерева"); Console.WriteLine("12- Запись дерева в файл"); Console.WriteLine("13- Удалить левое поддерево"); Console.WriteLine("14- Удалить правое поддерево"); Console.WriteLine("15- Удалить корень"); Console.WriteLine("66- Выйти"); int menu = Convert.ToInt32(Console.ReadLine()); switch (menu) { case 11: FastAdd(); break; case 1: Print(tree.Root, 0); break; case 2: Console.WriteLine("Средний возраст: " + tree.GetAverage()); break; case 3: Console.WriteLine("Количество: " + tree.Count); tree.Preorder2(tree.Root); Split(); Console.WriteLine("Количество: " + tree.Count); tree.Postorder(tree.Root); Split(); Console.WriteLine("Количество: " + tree.Count); tree.Symmetric(tree.Root); break; case 4: tree.Clear(tree.Root); break; case 5: tree = NewTreeByPasId(tree); break; case 6: foreach (var el in tree.Preorder()) { rbtTree.Insert(el.Name, el.PasId, el.Age); } break; case 7: PrintRB(rbtTree.rootnode, 0); break; case 8: counter = 0; Split(); rbtTree.Preorder2(rbtTree.rootnode, ref counter); Console.WriteLine("Количество: " + counter); Split(); counter = 0; rbtTree.Postorder(rbtTree.rootnode, ref counter); Console.WriteLine("Количество: " + counter); Split(); counter = 0; rbtTree.Symmetric(rbtTree.rootnode, ref counter); Console.WriteLine("Количество: " + counter); break; case 9: Console.WriteLine("Введите имя"); name = Console.ReadLine(); Console.WriteLine("Введите pasId"); pasId = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Введите возраст"); age = Convert.ToInt32(Console.ReadLine()); rbtTree.Insert(name, pasId, age); break; case 10: Console.WriteLine("Введите имя"); name = Console.ReadLine(); Console.WriteLine("Введите pasId"); pasId = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Введите возраст"); age = Convert.ToInt32(Console.ReadLine()); temp = new Date(name, pasId, age); rbtTree.remove(temp); break; case 12: System.IO.File.WriteAllText(@"C:\Users\Сralve\source\repos\algoritms\lab3\lab3\tree.txt", ""); PrintInFileTree(tree.Root, 0); break; case 13: tree.DeleteLeftOrRight(tree.Root.Left, 1); break; case 14: tree.DeleteLeftOrRight(tree.Root.Right, 0); break; case 15: tree.Clear(tree.Root); break; case 66: Console.Clear(); break; default: break; } Split(); } }