Example #1
0
        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);
            }
        }