private static void Task4() { { int menu = 1; SearchTree <Person> searchTree = new SearchTree <Person>(); do { menu = TaskSearchTree_Menu(); Console.Clear(); switch (menu) { case 1: //формирование дерева int size = ReadNumber(-1, 50, "Введите количество элементов дерева: "); searchTree = new SearchTree <Person>(size); searchTree.Show(); break; case 2: //добавление в коллекцию Console.WriteLine("Добавление элемента"); searchTree.Add(MakeObject()); searchTree.Show(); break; case 3: //Удаление if (searchTree.Remove(MakeObject())) { Console.WriteLine("Элемент удален"); } else { Console.WriteLine("Элемент не найден:"); } searchTree.Show(); break; case 4: //Поиск Person p = MakeObject(); bool searchedItem = searchTree.Contains(p); if (!searchedItem) { Console.WriteLine($"Объект {p} не найден"); } else { Console.WriteLine($"Объект {p} найден\n"); } searchTree.Show(); break; case 5: //клонирование int clone = ReadNumber(0, 3, "1. Глубокое клонирование" + "\n2. Поверхностное\n"); switch (clone) { //полное case 1: SearchTree <Person> cloneTree = searchTree.Clone(); searchTree.Show(); Console.WriteLine("_____________Копия создана___________"); cloneTree.Show(); Console.ReadKey(); break; //поверхностниое case 2: SearchTree <Person> treeShallowCopy = searchTree.ShallowCopy(); Console.WriteLine("Копия создана"); treeShallowCopy.Show(); break; } break; case 6: Console.WriteLine($"Элементов в коллекции: {searchTree.Count()}" + $"\nНажмите любую клавишу для продолжения..."); Console.ReadKey(); //печать break; case 7: searchTree.Show(); //печать break; } Console.Clear(); } while (menu != 8); } }