コード例 #1
0
        //-----------------------------------------------------------------------------------------------------------
        static void Main(string[] args)
        {
            Console.Clear();
            do
            {
                Console.WriteLine("\n----------------------------------");
                Console.WriteLine("| Выберите следующее действие:   |");
                Console.WriteLine("| 1) Однонаправленные списки     |");
                Console.WriteLine("| 2) Двунаправленные списки      |");
                Console.WriteLine("| 3) Бинарное дерево             |");
                Console.WriteLine("| 0) Выход из консоли            |");
                Console.WriteLine("----------------------------------");
                Console.Write("Действие: ");
                int MainMenu = Search_for_Bugs.ProverkaVvoda();
                switch (MainMenu)
                {
                case 1:
                    Console.Clear();
                    Point(args);
                    break;

                case 2:
                    Console.Clear();
                    PointTwo(args);
                    break;

                case 3:
                    Console.Clear();
                    Tree(args);
                    break;

                case 0:
                    Console.Clear();
                    Console.WriteLine(" ");
                    Console.WriteLine("Завершение работы...");
                    Thread.Sleep(900);
                    Environment.Exit(0);
                    break;

                default:
                    Text_Dialog.MainError();
                    continue;
                }
            } while (true);
        }
コード例 #2
0
        static Tree CreateTree(Tree tree, int size, string[] args)
        {
            do
            {
                Text_Dialog.FormList();
                int how = Search_for_Bugs.ProverkaVvoda();
                switch (how)
                {
                case 1:
                    tree = IdealTreeRnd(size, tree);
                    break;

                case 2:
                    tree = IdealTree(size);
                    break;

                case 9:
                    Console.Clear();
                    Main(args);
                    break;

                case 0:
                    Console.Clear();
                    Console.WriteLine(" ");
                    Console.WriteLine("Завершение работы...");
                    Thread.Sleep(900);
                    Environment.Exit(0);
                    break;

                default:
                    Text_Dialog.MainError();
                    continue;
                }
            } while (!true);
            return(tree);
        }
コード例 #3
0
        static void Tree(string[] args)
        {
            Tree tree = null;

            string[] arr = new string[999999];

            int pos  = 0;
            int size = 0;

            do
            {
                Console.WriteLine("\n-----------------------------------------------------------");
                Console.WriteLine("| Выберите следующее действие:                            |");
                Console.WriteLine("| 1) Сформировать идеально сбалансированное дерево        |");
                Console.WriteLine("| 2) Найти количество листьев в дереве                    |");
                Console.WriteLine("| 3) Преобразовать в дерево поиска                        |");
                Console.WriteLine("| 4) Вывести дерево на экран                              |");
                Console.WriteLine("| 9) В главное меню                                       |");
                Console.WriteLine("| 0) Выход                                                |");
                Console.WriteLine("-----------------------------------------------------------");
                Console.Write("Действие: ");
                int Menu = Search_for_Bugs.ProverkaVvoda();
                switch (Menu)
                {
                case 1:
                {
                    Console.Clear();
                    Console.WriteLine("---------------Формирование дерева----------------");
                    Console.WriteLine("Введите количество элементов в дереве:");
                    size = IntRND(1, 999999, "Ошибка, некорректный ввод!");
                    tree = CreateTree(tree, size, args);
                    Console.Clear();
                    Console.WriteLine("-------------------Дерево-------------------");
                    ShowTree(tree);
                    Console.WriteLine("--------------------------------------------");
                    break;
                }

                case 2:
                    if (tree == null)
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine("Дерево пустое!!!");
                        Console.ResetColor();
                        continue;
                    }
                    BeginSearchIdealTree(tree);
                    break;

                case 3:
                    if (tree == null)
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine("Дерево пустое!!!");
                        Console.ResetColor();
                        continue;
                    }
                    else
                    {
                        CompileTree(ref arr, ref pos, tree);
                        tree = TreeTransform(tree, null);
                        Console.Clear();
                        Console.WriteLine("-------------------Дерево-------------------");
                        ShowTree(tree);
                        Console.WriteLine("--------------------------------------------");
                        break;
                    }

                case 4:
                    if (tree == null)
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine("Дерево пустое!!!");
                        Console.ResetColor();
                        continue;
                    }
                    else
                    {
                        Console.Clear();
                        Console.WriteLine("-------------------Дерево-------------------");
                        ShowTree(tree);
                        Console.WriteLine("--------------------------------------------");
                        break;
                    }

                case 9:
                    Console.Clear();
                    Main(args);
                    break;

                case 0:
                    Console.Clear();
                    Console.WriteLine(" ");
                    Console.WriteLine("Завершение работы...");
                    Thread.Sleep(900);
                    Environment.Exit(0);
                    break;

                default:
                    Text_Dialog.MainError();
                    continue;
                }
            } while (true);
        }
コード例 #4
0
        // 5.1 - Формирование нового списка
        static BiList FormNewList2(string[] args)
        {
            Console.WriteLine("----------Формирование двунапраленного списка----------------");
            Console.Write("\nВведите число элементов в списке:");
            int    size = IntRND(1, 999999, "Ошибка, при вводе, повторите!");
            int    info = 0, LowLimit = 0, HighLimit = 0;
            BiList beg = null;
            BiList r   = null;
            BiList p   = null;

            do
            {
                Text_Dialog.FormList();
                int how = Search_for_Bugs.ProverkaVvoda();
                switch (how)
                {
                case 1:
                    Console.Write("Введите нижнюю границу:");
                    LowLimit = Int();
                    do
                    {
                        Console.Write("Введите верхнюю границу:");
                        HighLimit = Int();
                        if (HighLimit < LowLimit)
                        {
                            Console.WriteLine("Верхняя граница не может быть меньше нижней!!!");
                        }
                    } while (HighLimit < LowLimit);
                    info = rnd.Next(LowLimit, HighLimit);
                    beg  = MakePoint2(info);
                    r    = beg;
                    for (int i = 1; i < size; i++)
                    {
                        info   = rnd.Next(LowLimit, HighLimit);
                        p      = MakePoint2(info);
                        r.next = p;
                        p.last = r;
                        r      = p;
                    }
                    Console.WriteLine("Список сформирован");
                    break;

                case 2:
                    Console.WriteLine("Введите элемент строкового типа под номером 1");
                    info = Int();
                    beg  = MakePoint2(info);
                    r    = beg;
                    for (int i = 1; i < size; i++)
                    {
                        Console.WriteLine("Введите элемент строкового типа под номером {0}", i + 1);
                        info   = Int();
                        p      = MakePoint2(info);
                        r.next = p;
                        p.last = r;
                        r      = p;
                    }
                    Console.WriteLine("Список сформирован");
                    break;

                case 9:
                    Console.Clear();
                    Main(args);
                    break;

                case 0:
                    Console.Clear();
                    Thread.Sleep(900);
                    Console.WriteLine(" ");
                    Console.WriteLine("Завершение работы...");
                    Environment.Exit(0);
                    break;

                default:
                    Text_Dialog.MainError();
                    continue;
                }
            } while (!true);
            return(beg);
        }
コード例 #5
0
        //-----------------------------------------------------------------------------------------------------------
        //---Двунаправленный список----------------------------------------------------------------------------------
        #region
        static void PointTwo(string[] args)
        {
            int    SwitchNumber;
            BiList List2 = null;

            do
            {
                Console.WriteLine("\n--------------------------------------------------------");
                Console.WriteLine("| Выберите следующее действие:                         |");
                Console.WriteLine("| 1) Сформировать список                               |");
                Console.WriteLine("| 2) Удалить из текущего списка первый четный элемент  |");
                Console.WriteLine("| 3) Вывести текущий список на экран                   |");
                Console.WriteLine("| 9) В начало                                          |");
                Console.WriteLine("| 0) Выход из консоли                                  |");
                Console.WriteLine("--------------------------------------------------------");
                Console.Write("Действие: ");
                SwitchNumber = Search_for_Bugs.ProverkaVvoda();
                switch (SwitchNumber)
                {
                case 1:
                    Console.Clear();
                    List2 = FormNewList2(args);
                    Console.Clear();
                    Console.WriteLine("----------Двунапраленный список----------------\n");
                    ShowList2(List2);
                    Console.WriteLine("-----------------------------------------------");
                    break;

                case 2:
                    Console.Clear();
                    Console.WriteLine("----------Двунапраленный список----------------\n");
                    List2 = WorkList2(List2);
                    ShowList2(List2);
                    Console.WriteLine("-----------------------------------------------");
                    do
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine("\nУдаление уже произведено!!!");
                        Console.ResetColor();
                        Console.WriteLine("\n--------------------------------------------------------");
                        Console.WriteLine("| Выберите следующее действие:                         |");
                        Console.WriteLine("| 1) Сформировать новый список                         |");
                        Console.WriteLine("| 2) Вывести текущий список на экран                   |");
                        Console.WriteLine("| 9) В начало                                          |");
                        Console.WriteLine("| 0) Выход из консоли                                  |");
                        Console.WriteLine("--------------------------------------------------------");
                        Console.Write("Действие: ");
                        SwitchNumber = Search_for_Bugs.ProverkaVvoda();
                        switch (SwitchNumber)
                        {
                        case 1:
                            Console.Clear();
                            List2 = FormNewList2(args);
                            Console.Clear();
                            Console.WriteLine("----------Двунапраленный список----------------\n");
                            ShowList2(List2);
                            Console.WriteLine("-----------------------------------------------");
                            break;

                        case 2:
                            Console.Clear();
                            Console.WriteLine("----------Двунапраленный список----------------\n");
                            ShowList2(List2);
                            Console.WriteLine("-----------------------------------------------");
                            break;

                        case 9:
                            Console.Clear();
                            Main(args);
                            break;

                        case 0:
                            Console.Clear();
                            Console.WriteLine(" ");
                            Console.WriteLine("Завершение работы...");
                            Thread.Sleep(900);
                            Environment.Exit(0);
                            break;

                        default:
                            Text_Dialog.MainError();
                            continue;
                        }
                    } while (!true);
                    break;

                case 3:
                    Console.Clear();
                    Console.WriteLine("----------Двунапраленный список----------------\n");
                    ShowList2(List2);
                    Console.WriteLine("-----------------------------------------------");
                    break;

                case 9:
                    Console.Clear();
                    Main(args);
                    break;

                case 0:
                    Console.Clear();
                    Console.WriteLine(" ");
                    Console.WriteLine("Завершение работы...");
                    Thread.Sleep(900);
                    Environment.Exit(0);
                    break;

                default:
                    Text_Dialog.MainError();
                    continue;
                }
            } while (true);
        }
コード例 #6
0
        // 4.1 - Формирование нового списка
        static Point FormNewList1(string[] args)
        {
            Console.WriteLine("----------Формирование однонапраленного списка----------------");
            Console.WriteLine("Введите число элементов в списке");
            int    size = IntRND(1, 999999, "Введенное вами число не может являться числом элементов в списке");
            double info = 0, LowLimit = 0, HighLimit = 0;
            Point  beg = null;
            Point  r   = null;
            Point  p   = null;

            do
            {
                Text_Dialog.FormList();
                int how = Search_for_Bugs.ProverkaVvoda();
                switch (how)
                {
                case 1:
                    Console.Write("Введите нижнюю границу:");
                    LowLimit = Double();
                    do
                    {
                        Console.Write("Введите верхнюю границу:");
                        HighLimit = Double();
                        if (HighLimit < LowLimit)
                        {
                            Console.WriteLine("Верхняя граница не может быть меньше нижней!!!");
                        }
                    } while (HighLimit < LowLimit);
                    info = rnd.Next(Convert.ToInt32(LowLimit), Convert.ToInt32(HighLimit));
                    beg  = MakePoint(info);
                    r    = beg;
                    for (int i = 1; i < size; i++)
                    {
                        info   = rnd.Next(Convert.ToInt32(LowLimit), Convert.ToInt32(HighLimit));
                        p      = MakePoint(info);
                        r.next = p;
                        r      = p;
                    }
                    Console.WriteLine("Список успешно сформирован");
                    break;

                case 2:
                    Console.WriteLine("Введите элемент вещественного типа под номером 1");
                    info = Double();
                    beg  = MakePoint(info);
                    r    = beg;
                    for (int i = 1; i < size; i++)
                    {
                        Console.WriteLine("Введите элемент вещественного типа под номером {0}", i + 1);
                        info   = Double();
                        p      = MakePoint(info);
                        r.next = p;
                        r      = p;
                    }
                    Console.WriteLine("Список успешно сформирован");
                    break;

                case 9:
                    Console.Clear();
                    Main(args);
                    break;

                case 0:
                    Console.Clear();
                    Thread.Sleep(900);
                    Console.WriteLine(" ");
                    Console.WriteLine("Завершение работы...");
                    Environment.Exit(0);
                    break;

                default:
                    Text_Dialog.MainError();
                    continue;
                }
            } while (!true);
            return(beg);
        }
コード例 #7
0
        //---Однонаправленный список---------------------------------------------------------------------------------
        #region
        // 4. Первое меню (однонаправленный список)
        static void Point(string[] args)
        {
            int   SwitchNumber;
            Point List1 = null;

            do
            {
                Console.WriteLine("\n-----------------------------------------------------------------------------");
                Console.WriteLine("| Выберите следующее действие:                                              |");
                Console.WriteLine("| 1) Сформировать список                                                    |");
                Console.WriteLine("| 2) Вставить после каждого отрицательного элемента списка нулевой элемент  |");
                Console.WriteLine("| 3) Вывести текущий список на экран                                        |");
                Console.WriteLine("| 9) В начало                                                               |");
                Console.WriteLine("| 0) Выход из консоли                                                       |");
                Console.WriteLine("-----------------------------------------------------------------------------");
                Console.Write("Действие: ");
                SwitchNumber = Search_for_Bugs.ProverkaVvoda();
                switch (SwitchNumber)
                {
                case 1:
                    Console.Clear();
                    List1 = FormNewList1(args);
                    Console.Clear();
                    Console.WriteLine("----------Однонаправленный список--------------\n");
                    ShowList1(List1);
                    Console.WriteLine("-----------------------------------------------");
                    break;

                case 2:
                    Console.Clear();
                    Console.WriteLine("----------Однонаправленный список--------------\n");
                    List1 = WorkList1(List1);
                    ShowList1(List1);
                    Console.WriteLine("-----------------------------------------------");
                    break;

                case 3:
                    Console.Clear();
                    Console.WriteLine("----------Однонаправленный список--------------\n");
                    ShowList1(List1);
                    Console.WriteLine("-----------------------------------------------");
                    break;

                case 9:
                    Console.Clear();
                    Main(args);
                    break;

                case 0:
                    Console.Clear();
                    Console.WriteLine(" ");
                    Console.WriteLine("Завершение работы...");
                    Thread.Sleep(900);
                    Environment.Exit(0);
                    break;

                default:
                    Text_Dialog.MainError();
                    continue;
                }
            } while (true);
        }