Пример #1
0
 // Конструктор с параметрами, начальный элемент - начало другого списка
 public DoublyLinkedList(DoublyLinkedList <T> list)
 {
     Beg = list.Beg;
 }
Пример #2
0
        static void Main(string[] args)
        {
            int  N;
            bool ok;

            Console.WriteLine("Введите N - количество элементов в списке");
            do
            {
                // Проверка ввода, должно быть введено целое положительное число
                ok = int.TryParse(Console.ReadLine(), out N);
                // Если введено не целое положительное число, вывод ошибки
                if (!ok || N <= 0)
                {
                    Console.WriteLine("Ошибка ввода. Попробуйте снова");
                }
            } while (!ok || N <= 0);

            // Создание двунаправленного связного списка
            DoublyLinkedList <int> list = new DoublyLinkedList <int>();

            // Заполняем его N элементами
            list.Beg = list.MakeList(N);

            // Переменная для хранения пользовательского выбора
            int choice = -1;

            // Когда пользователь введёт 4, цикл прекратится (Выход)
            while (choice != 4)
            {
                Console.WriteLine("1. Печать");
                Console.WriteLine("2. Поиск элемента");
                Console.WriteLine("3. Удаление элемента");
                Console.WriteLine("4. Выход");

                // Проверка ввода
                ok = int.TryParse(Console.ReadLine(), out choice);
                if (!ok || choice < 0 || choice > 4)
                {
                    // Если введено что-то кроме 1,2,3,4 - ошибка ввода
                    do
                    {
                        Console.WriteLine("Проверьте правильность ввода");
                        ok = int.TryParse(Console.ReadLine(), out choice);
                    } while (!ok || choice < 0 || choice > 4);
                }
                switch (choice)
                {
                case 1:
                    // Печать списка
                    Console.Clear();
                    list.ShowList(list.Beg);
                    break;

                case 2:
                    Console.Clear();
                    // Поиск элемента
                    Console.WriteLine("Введите целое число - элемент, который необходимо найти");
                    int number;
                    // Проверка ввода искомого элемента
                    do
                    {
                        ok = int.TryParse(Console.ReadLine(), out number);
                        if (!ok)
                        {
                            Console.WriteLine("Ошибка ввода. Попробуйте снова");
                        }
                    } while (!ok);
                    // Поиск элемента
                    bool found = list.Search(list.Beg, number);
                    // Если элемент был найден, вывод сообщения об этом
                    if (found == true)
                    {
                        Console.WriteLine($"Элемент {number} найден");
                    }
                    // Если элемент не был найден, вывод сообщения об этом
                    else
                    {
                        Console.WriteLine($"Элемент {number} не найден");
                    }
                    break;

                case 3:
                    Console.Clear();
                    // Удаление элемента
                    Console.WriteLine("Введите целое число - элемент, который необходимо удалить");
                    int del;
                    // Проверка ввода элемента, который необходимо удалить
                    do
                    {
                        ok = int.TryParse(Console.ReadLine(), out del);
                        if (!ok)
                        {
                            Console.WriteLine("Ошибка ввода. Попробуйте снова");
                        }
                    } while (!ok);
                    // Удаление элемента
                    list.Beg = list.Delete(list.Beg, del);
                    break;

                case 4:
                    // Выход
                    choice = 4;
                    Console.Clear();
                    break;
                }
            }
        }
Пример #3
0
        static void Main(string[] args)
        {
            int  N;
            bool ok;

            Console.WriteLine("Введите N - количество элементов в списке");
            do
            {
                ok = int.TryParse(Console.ReadLine(), out N); //проверка ввода, должно быть введено целое положительное число
                if (!ok || N <= 0)
                {
                    Console.WriteLine("Ошибка ввода. Попробуйте снова");                //если введено не целое положительное число, вывод ошибки
                }
            } while (!ok || N <= 0);

            DoublyLinkedList <int> list = new DoublyLinkedList <int>();

            list.Beg = list.MakeList(N);

            int choice = -1;

            while (choice != 4)
            {
                Console.WriteLine("1. Печать");
                Console.WriteLine("2. Поиск элемента");
                Console.WriteLine("3. Удаление элемента");
                Console.WriteLine("4. Выход");

                ok = int.TryParse(Console.ReadLine(), out choice);
                if (!ok || choice < 0 || choice > 4)
                {
                    do
                    {
                        Console.WriteLine("Проверьте правильность ввода");
                        ok = int.TryParse(Console.ReadLine(), out choice);
                    } while (!ok || choice < 0 || choice > 4);
                }
                switch (choice)
                {
                case 1:
                    Console.Clear();
                    list.ShowList(list.Beg);
                    break;

                case 2:
                    Console.WriteLine("Введите целое число - элемент, который необходимо найти");
                    int number;
                    do
                    {
                        ok = int.TryParse(Console.ReadLine(), out number);
                        if (!ok)
                        {
                            Console.WriteLine("Ошибка ввода. Попробуйте снова");
                        }
                    } while (!ok);
                    list.Search(list.Beg, number);
                    break;

                case 3:
                    Console.WriteLine("Введите целое число - элемент, который необходимо удалить");
                    int del;
                    do
                    {
                        ok = int.TryParse(Console.ReadLine(), out del);
                        if (!ok)
                        {
                            Console.WriteLine("Ошибка ввода. Попробуйте снова");
                        }
                    } while (!ok);
                    list.Beg = list.Delete(list.Beg, del);
                    break;

                case 4:
                    choice = 4;
                    Console.Clear();
                    break;
                }
            }
        }