Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            PointUniList   uniListBeg = null;
            PointBiList    biListBeg  = null;
            PointTree      pointTree  = null;
            Tree <Animals> tree       = null;

            Console.WriteLine("Добро пожаловать в приложение по работе с коллекциями!");

            while (true)
            {
                int pointsMainMenu = 4;

                Console.WriteLine("\nМеню приложения:");
                Console.WriteLine("1 - Меню работы с однонаправленным списком");
                Console.WriteLine("2 - Меню работы с двунаправленным списком");
                Console.WriteLine("3 - Меню работы с идеально сбалансированным деревом");
                Console.WriteLine("4 - Меню работы с обобщенной коллекцией");
                Console.WriteLine("0 - Выйти из приложения");

                int choiceMainMenu = InputInt(0, pointsMainMenu);

                if (choiceMainMenu == 0)
                {
                    Console.WriteLine("\n0 - Выход из приложения");
                    break;
                }

                switch (choiceMainMenu)
                {
                case 1:
                    UniCaseMenu(ref uniListBeg);
                    break;

                case 2:
                    BiCaseMenu(ref biListBeg);
                    break;

                case 3:
                    TreeCaseMenu(ref pointTree);
                    break;

                case 4:
                    PointTreeCaseMenu(ref tree);
                    break;
                }
            }
        }
Ejemplo n.º 2
0
        private static void TreeCaseMenu(ref PointTree pointTree)
        {
            while (true)
            {
                int pointsCaseMenu = 7;

                Console.WriteLine("\nМеню работы с идеально сбалансированным деревом:");
                Console.WriteLine("1 - Формирование дерева");
                Console.WriteLine("2 - Добавление элемента в дерево");
                Console.WriteLine("3 - Печать дерева");
                Console.WriteLine("4 - Поиск максимального элемента в дереве");
                Console.WriteLine("5 - Удаление дерева из памяти");
                Console.WriteLine("6 - Создание дерева поиска");
                Console.WriteLine("7 - Очистка истории");
                Console.WriteLine("0 - Выход из меню");

                int choiceCaseMenu = InputInt(0, pointsCaseMenu);

                if (choiceCaseMenu == 0)
                {
                    Console.WriteLine("\n0 - Выход из меню");
                    break;
                }

                switch (choiceCaseMenu)
                {
                case 1:
                {
                    Console.WriteLine("\n1 - Формирование дерева");
                    Console.WriteLine("Для формирования дерева создается корень:");
                    Animals a = new Animals();
                    pointTree = new PointTree(a.CreateObjectAnimalsRandom());
                    Console.WriteLine("Формирование дерева завершено");
                }
                break;

                case 2:
                {
                    Console.WriteLine("\n2 - Добавление элемента в дерево");
                    pointTree.Add(new Animals().CreateObjectAnimalsRandom());
                    Console.WriteLine("Добавление элемента в дерево завершено");
                }
                break;

                case 3:
                {
                    Console.WriteLine("\n3 - Печать дерева");
                    if (pointTree == null)
                    {
                        Console.WriteLine("Дерево пустое");
                    }
                    else
                    {
                        Console.WriteLine("Дерево:");
                        pointTree.ShowTree(pointTree.Root, 0);
                    }
                    Console.WriteLine("\nПечать дерева завершено");
                }
                break;

                case 4:
                {
                    Console.WriteLine("\n4 - Поиск максимального элемента в дереве");
                    Animals a = pointTree.FindMax();
                    if (a.Weight == 1)
                    {
                        Console.WriteLine("Ошибка! В дереве нет объектов, следовательно нет максимального элемента");
                        Console.WriteLine("Поиск максимального элемента в дереве не завершено");
                        break;
                    }
                    Console.WriteLine("Максимальный объект в дереве равен " + a.Weight);
                    Console.WriteLine("Поиск максимального элемента в дереве завершено");
                }
                break;

                case 5:
                {
                    Console.WriteLine("\n5 - Удаление дерева из памяти");
                    pointTree = new PointTree();
                    Console.WriteLine("Удаление дерева из памяти завершено");
                }
                break;

                case 6:
                {
                    Console.WriteLine("\n6 - Создание дерева поиска");
                    if (pointTree.Root == null)
                    {
                        Console.WriteLine("Ошибка! Дерево не имеет начала");
                        Console.WriteLine("Создание дерева поиска не завершено");
                        break;
                    }
                    pointTree.CreateFindTree();
                    Console.WriteLine("Дерево: ");
                    pointTree.ShowTree(pointTree.Root, 0);
                    Console.WriteLine("Создание дерева завершено");
                }
                break;

                case 7:
                {
                    Console.Clear();
                    Console.WriteLine("История была очищена");
                }
                break;
                }
            }
        }