예제 #1
0
        public void AddAfterKey_OneElem_NoKey()
        {
            //arrange
            Person p1 = new Person("1", 1);
            Person p2 = new Person("2", 2);

            MyLinkedList list = new MyLinkedList(p1);

            //act
            list.AddAfterKey(p2, p1);

            ////assert
            Assert.AreEqual(list.Count(), 1);
        }
예제 #2
0
        public void AddAfterKey_ClearCollection()
        {
            //arrange
            Person p1 = new Person("1", 1);
            Person p2 = new Person("2", 2);

            MyLinkedList list = new MyLinkedList();

            //act
            list.AddAfterKey(p1, p2);

            ////assert
            Assert.AreEqual(list.Count(), 0);
        }
예제 #3
0
        public void AddAfterKey_OneElementInList()
        {
            //arrange
            Person p1 = new Person("1", 1);
            Person p2 = new Person("2", 2);

            MyLinkedList list = new MyLinkedList(p1);

            //act
            list.AddAfterKey(p1, p2);

            ////assert
            Assert.AreEqual(list.Count(), 2);
            Assert.AreEqual(list.Begin.next.data, p2);
        }
예제 #4
0
        public void AddAfterKey_NoKey()
        {
            //arrange
            Person p1 = new Person("1", 1);
            Person p2 = new Person("2", 2);
            Person p3 = new Person("3", 3);
            Person p4 = new Person("4", 4);

            Person[] arr = { p1, p2, p3 };

            MyLinkedList list = new MyLinkedList(arr);

            //act
            list.AddAfterKey(p4, p1);

            ////assert
            Assert.AreEqual(list.Count(), 3);
        }
예제 #5
0
        public void AddAfterKey_EndElementKey()
        {
            //arrange
            Person p1 = new Person("1", 1);
            Person p2 = new Person("2", 2);
            Person p3 = new Person("3", 3);

            Person[] arr = { p1, p2 };

            MyLinkedList list = new MyLinkedList(arr);

            //act
            list.AddAfterKey(p2, p3);

            ////assert
            Assert.AreEqual(list.Count(), 3);
            Assert.AreEqual(list.End.data, p3);
        }
예제 #6
0
        public void AddAfterKey_Middle()
        {
            //arrange
            Person p1 = new Person("1", 1);
            Person p2 = new Person("2", 2);
            Person p3 = new Person("3", 3);
            Person p4 = new Person("4", 4);

            Person[] arr = { p1, p2, p4 };

            MyLinkedList list = new MyLinkedList(arr);

            //act
            list.AddAfterKey(p2, p3);

            ////assert
            Assert.AreEqual(list.Begin.next.next.data, p3);
        }
예제 #7
0
        private static void Task2()
        {
            {
                int          menu        = 1;
                MyLinkedList linlkedList = new MyLinkedList();
                do
                {
                    menu = Task1_Menu();
                    Console.Clear();
                    switch (menu)
                    {
                    case 1:
                        //формирование коллеции
                        int size = ReadNumber(-1, 50, "Введите размер однонаправленного списка: ");
                        linlkedList = new MyLinkedList(size);                                          //создание списка
                        linlkedList.PrintList();
                        break;

                    case 2:
                        //добавление в коллекцию
                        int add = ReadNumber(0, 4, "1. В начало" + "\n2. В конец" + "\n3. После элемента\n");
                        switch (add)
                        {
                        //в начало
                        case 1:
                            linlkedList.AddToBegin(MakeObject());
                            break;

                        //в конец
                        case 2:
                            linlkedList.AddToEnd(MakeObject());
                            break;

                        case 3:
                            Console.WriteLine("Введите ключ для поиска: ");
                            Person key = MakeObject();
                            Console.WriteLine("Введите элемент для добавления после ключа: ");
                            Person addAfterKey = MakeObject();
                            linlkedList.AddAfterKey(key, addAfterKey);
                            break;
                        }
                        linlkedList.PrintList();
                        break;

                    case 3:
                        Console.WriteLine("Удаление по ключу:");
                        linlkedList.RemoveKey(MakeObject());
                        linlkedList.PrintList();
                        break;

                    case 4:
                        //клонирование
                        int clone = ReadNumber(0, 3, "1. Глубокое клонирование" + "\n2. Поверхностное\n");
                        switch (clone)
                        {
                        //полное
                        case 1:
                            MyLinkedList listClone = linlkedList.Clone();
                            Console.WriteLine("Копия создана");
                            listClone.PrintList();
                            break;

                        //поверхностниое
                        case 2:
                            MyLinkedList listShallowCopy = linlkedList.ShallowCopy();
                            Console.WriteLine("Копия создана");
                            listShallowCopy.PrintList();
                            break;
                        }

                        break;

                    case 5:
                        Console.WriteLine($"Размер коллекции: {linlkedList.Count()}");
                        Console.ReadKey();
                        //Подсчет количества объектов
                        break;

                    case 6:
                        linlkedList.PrintList();
                        //печать
                        break;
                    }
                    Console.Clear();
                } while (menu != 7);

                linlkedList.RemoveCollection();
            }
        }