예제 #1
0
        public static AnnularDoubleLinkedList <int> CreateCollection(int n)
        {
            AnnularDoubleLinkedList <int> collection = new AnnularDoubleLinkedList <int>();

            for (int i = 1; i <= n; i++)
            {
                collection.Add(i);
            }
            return(collection);
        }
예제 #2
0
        static void Functions(int choice)
        {
            switch (choice)
            {
            case 1:
            {
                Console.Write("Введите количество элементов в коллекции: ");
                int  count = 0;
                bool ok    = false;
                do
                {
                    ok = int.TryParse(Console.ReadLine(), out count);
                    if (!ok || choice <= 0)
                    {
                        Console.Write("Некорректный ввод, попробуйте еще: ");
                        ok = false;
                    }
                } while (!ok);
                MainList = AnnularDoubleLinkedList <int> .CreateCollection(count);

                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("Коллекция, содержащая {0} элементов успешно создана", count);
                Console.ResetColor();
                break;
            }

            case 2:
            {
                if (MainList == null)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Коллекция не создана");
                    Console.ResetColor();
                }
                else
                {
                    int element = 0;
                    Console.Write("Введите значение элемента (целое число): ");
                    bool ok = false;
                    do
                    {
                        ok = int.TryParse(Console.ReadLine(), out element);
                        if (!ok)
                        {
                            Console.Write("Некорректный ввод, попробуйте еще: ");
                        }
                    } while (!ok);
                    MainList.Add(element);
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("Элемент {0} успешно добавлен", element);
                    Console.ResetColor();
                }
                break;
            }

            case 3:
            {
                if (MainList == null)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Коллекция не создана");
                    Console.ResetColor();
                }
                else
                {
                    int data = 0;
                    Console.Write("Введите значение элемента для поиска: ");
                    bool ok = false;
                    do
                    {
                        ok = int.TryParse(Console.ReadLine(), out data);
                        if (!ok)
                        {
                            Console.Write("Некорректный ввод, попробуйте еще: ");
                        }
                    } while (!ok);
                    int index = MainList.IndexOf(data);
                    if (index >= 0)
                    {
                        Console.ForegroundColor = ConsoleColor.Green;
                        Console.WriteLine("Элемент найден под номером {0}", index);
                        Console.ResetColor();
                    }
                    else
                    {
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("Элемент не найден");
                        Console.ResetColor();
                    }
                }
                break;
            }

            case 4:
            {
                if (MainList == null)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Коллекция не создана");
                    Console.ResetColor();
                }
                else
                {
                    int index = 0;
                    Console.Write("Введите номер элемента: ");
                    bool ok = false;
                    do
                    {
                        ok = int.TryParse(Console.ReadLine(), out index);
                        if (!ok || index <= 0)
                        {
                            Console.Write("Некорректный ввод, попробуйте еще: ");
                            ok = false;
                        }
                        if (index > MainList.Count)
                        {
                            Console.ForegroundColor = ConsoleColor.Red;
                            Console.Write("Введенный номер больше количества элементов в коллекции, попробуйте еще: ");
                            Console.ResetColor();
                            ok = false;
                        }
                    } while (!ok);
                    int val = AnnularDoubleLinkedList <int> .Take(index, MainList);

                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("Полученное значение по номеру - {0}", val);
                    Console.ResetColor();
                }
                break;
            }

            case 5:
            {
                if (MainList == null)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Коллекция не создана");
                    Console.ResetColor();
                }
                else
                {
                    int index = 0;
                    Console.Write("Введите номер элемента для удаления: ");
                    bool ok = false;
                    do
                    {
                        ok = int.TryParse(Console.ReadLine(), out index);
                        if (!ok || index <= 0)
                        {
                            Console.Write("Некорректный ввод, попробуйте еще: ");
                            ok = false;
                        }
                        if (index > MainList.Count)
                        {
                            Console.ForegroundColor = ConsoleColor.Red;
                            Console.Write("Введенный номер больше количества элементов в коллекции, попробуйте еще: ");
                            Console.ResetColor();
                            ok = false;
                        }
                    } while (!ok);
                    MainList.Remove(index);
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("Элемент успешно удален");
                    Console.ResetColor();
                }
                break;
            }

            case 6:
            {
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("Печать коллекции: ");
                Console.ResetColor();
                if (MainList == null)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Коллекция не создана");
                    Console.ResetColor();
                }
                else
                {
                    foreach (int s in MainList)
                    {
                        Console.WriteLine(s);
                    }
                }
                break;
            }
            }
        }