// Конструктор с параметрами, начальный элемент - начало другого списка public DoublyLinkedList(DoublyLinkedList <T> list) { Beg = list.Beg; }
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; } } }
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; } } }