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