Пример #1
0
        static void Main(string[] args)
        {
            MyLinkedList<int> list = new MyLinkedList<int>();
            list.AddFirst(5);
            list.AddAfter(list.FirstElement, -1);
            Console.WriteLine(list);
            list.AddFirst(9);
            Console.WriteLine(list);

            list.Remove(5);
            Console.WriteLine(list);
            return;
            Console.WriteLine();
            Console.WriteLine(list);
            list.AddLast(10);
            Console.WriteLine(list);
            list.AddAfter(list.FirstElement, 111);
            Console.WriteLine(list);
            list.AddAfter(list.FirstElement.NextItem, -100);
            Console.WriteLine(list);
            list.AddBefore(list.FirstElement.NextItem, 999);
            Console.WriteLine(list);
            list.AddBefore(list.FirstElement.NextItem.NextItem.NextItem, 800);
            Console.WriteLine(list);
        }
Пример #2
0
        public void AddAfter_AddsAfter(long index)
        {
            var itemToAdd = new MyLinkedListNode <string>("added");

            _list.AddAfter(itemToAdd, _list[index]);

            Assert.AreEqual(itemToAdd, _list[index + 1]);
            Assert.AreEqual(_listCount + 1, _list.Count);

            Assert.True(FilledListOkay);
        }
Пример #3
0
        public void AddAfter_FailsOnNull_OnEmpty()
        {
            void act()
            {
                MyLinkedListNode <string> relItem = null;

                _emptyList.AddAfter(new MyLinkedListNode <string>("toAdd"), relItem);
            }

            Assert.Throws <ArgumentNullException>(new TestDelegate(act));
            Assert.True(EmptyListOkay);
        }
Пример #4
0
        static void Main(string[] args)
        {
            var myList = new MyLinkedList <string>();

            myList.Add("5");
            myList.Add("10");
            myList.AddAfter("5", "100");
            myList.AddAfter("100", "5");
            myList.AddAfter("10", "last");
            myList.Add("really last");

            myList.Print();
        }
        public void TestAddAfter()
        {
            string[] values         = { "a", "b", "c", "d", "e" };
            MyLinkedList <string> l = new MyLinkedList <string>(values);

            l.AddAfter(l.First, "w");
            bool result = l.First.Next.Value == "w";

            Assert.AreEqual(true, result);
        }
Пример #6
0
        public void AddAfter_AddAfterLastElement_Added()
        {
            //Arrange
            var testList = new MyLinkedList <int>();

            testList.Add(22);
            testList.Add(44);

            //Act
            testList.AddAfter(44, 55);
        }
Пример #7
0
        public void AddAfter_ElementNotExist_InvalidOperationException()
        {
            //Arrange
            var testList = new MyLinkedList <int>();

            testList.Add(22);
            testList.Add(44);

            //Act
            testList.AddAfter(33, 55);
        }
Пример #8
0
        public void AddAfterTest()
        {
            MyLinkedList <string> list = new MyLinkedList <string>();

            CollectionAssert.AreEqual(new string[] { }, list);
            var node = list.AddLast("abs");

            CollectionAssert.AreEqual(new string[] { "abs" }, list);
            list.AddAfter(node, "zz");
            CollectionAssert.AreEqual(new string[] { "abs", "zz" }, list);
        }
Пример #9
0
    static void Main()
    {
        Console.WriteLine("Dot Net LinkedList");
        LinkedList<int> dotNetList = new LinkedList<int>();
        dotNetList.AddFirst(3);
        dotNetList.AddFirst(1);
        dotNetList.AddBefore(dotNetList.Last, 2);
        dotNetList.AddBefore(dotNetList.First, 4);
        dotNetList.AddAfter(dotNetList.Last, 5);
        dotNetList.AddAfter(dotNetList.First, 6);
        dotNetList.AddLast(7);
        dotNetList.AddLast(8);
        dotNetList.RemoveFirst();
        dotNetList.RemoveLast();

        foreach (var item in dotNetList)
        {
            Console.WriteLine(item);
        }
        Console.WriteLine("Dot Net LinkedList.Count = {0}", dotNetList.Count);

        Console.WriteLine();
        Console.WriteLine("My LinkedList<T>");
        MyLinkedList<int> myList = new MyLinkedList<int>();
        myList.AddFirst(3);
        myList.AddFirst(1);
        myList.AddBefore(myList.Last, 2);
        myList.AddBefore(myList.First, 4);
        myList.AddAfter(myList.Last, 5);
        myList.AddAfter(myList.First, 6);
        myList.AddLast(7);
        myList.AddLast(8);
        myList.RemoveFirst();
        myList.RemoveLast();

        foreach (var number in myList)
        {
            Console.WriteLine(number);
        }
        Console.WriteLine("MyList.Count = {0}", myList.Count);
    }
Пример #10
0
        public void AddAfter_Add3After5_NextAfter3Equal5()
        {
            MyLinkedList <int> myList = new MyLinkedList <int>()
            {
                1, 2, 3, 4, 5
            };

            myList.AddAfter(3, 5);

            CollectionAssert.Contains(myList, 5, "List should contain element {0}", 5);
            Assert.AreEqual(5, myList[3], "Element after 3 is not 5");
        }
        public void AddAfterCanAddLast()
        {
            //Arrange
            Node         firstNode  = new Node(1);
            Node         secondNode = new Node(2);
            MyLinkedList list1      = new MyLinkedList(firstNode);

            //Act
            list1.AddAfter(secondNode, firstNode);
            Node found = list1.KthElement(0);

            //Assert
            Assert.Equal(secondNode, found);
        }
Пример #12
0
        public void AddAfter_ElementExist_Ok()
        {
            //Arrange
            var testList = new MyLinkedList <int>();

            testList.Add(33);
            testList.Add(44);

            //Act
            testList.AddAfter(33, 55);

            //Assert
            Assert.AreEqual("33;55;44;", testList.ToString());
        }
        private void ArrangeAndActUponLinkedLists(LinkedList <int> originalLinkedList, MyLinkedList <int> myLinkedList)
        {
            LinkedListNode <int> fiveHundredListNode = new LinkedListNode <int>(500);
            LinkedListNode <int> tenListNode         = new LinkedListNode <int>(10);
            LinkedListNode <int> last = new LinkedListNode <int>(666);

            MyLinkedListNode <int> myFiveHundredListNode = new MyLinkedListNode <int>(500);
            MyLinkedListNode <int> myTenListNode         = new MyLinkedListNode <int>(10);
            MyLinkedListNode <int> myLast = new MyLinkedListNode <int>(666);

            originalLinkedList.AddFirst(tenListNode);
            originalLinkedList.AddBefore(tenListNode, 9);
            originalLinkedList.AddAfter(tenListNode, fiveHundredListNode);
            originalLinkedList.AddLast(last);
            originalLinkedList.Remove(10);
            originalLinkedList.AddAfter(last, 777);
            originalLinkedList.Remove(fiveHundredListNode);
            originalLinkedList.RemoveFirst();
            originalLinkedList.RemoveLast();
            originalLinkedList.Clear();
            originalLinkedList.AddLast(5);
            originalLinkedList.RemoveFirst();

            myLinkedList.AddFirst(myTenListNode);
            myLinkedList.AddBefore(myTenListNode, 9);
            myLinkedList.AddAfter(myTenListNode, myFiveHundredListNode);
            myLinkedList.AddLast(myLast);
            myLinkedList.Remove(10);
            myLinkedList.AddAfter(myLast, 777);
            myLinkedList.Remove(myFiveHundredListNode);
            myLinkedList.RemoveFirst();
            myLinkedList.RemoveLast();
            myLinkedList.Clear();
            myLinkedList.AddLast(5);
            myLinkedList.RemoveFirst();
        }
        public void AddAfterDoesNothingIfExistingNodeDoesNotExist()
        {
            //Arrange
            Node         firstNode  = new Node(1);
            Node         secondNode = new Node(2);
            Node         thirdNode  = new Node(3);
            MyLinkedList list1      = new MyLinkedList(firstNode);

            //Act
            list1.AddAfter(thirdNode, secondNode);
            Node found = list1.KthElement(0);

            //Assert
            Assert.NotEqual(found, thirdNode);
            Assert.Equal(found, firstNode);
        }
        public void TestAddAfterNull()
        {
            string[] values         = { "a", "b", "c", "d", "e" };
            MyLinkedList <string> l = new MyLinkedList <string>(values);
            bool result             = true;

            try
            {
                l.AddAfter(null, "a");
            }
            catch
            {
                result = false;
            }

            Assert.AreEqual(false, result);
        }
        public void TestAddAfterExisting()
        {
            string[] values         = { "a", "b", "c", "d", "e" };
            MyLinkedList <string> l = new MyLinkedList <string>(values);
            bool result             = true;

            try
            {
                l.AddAfter(l.First, l.Last);
            }
            catch
            {
                result = false;
            }

            Assert.AreEqual(false, result);
        }
        public void TestAddAfterDoesnotBelong()
        {
            string[] values             = { "a", "b", "c", "d", "e" };
            MyLinkedList <string>     l = new MyLinkedList <string>(values);
            MyLinkedListNode <string> n = new MyLinkedListNode <string>();
            bool result = true;

            try
            {
                l.AddAfter(n, "a");
            }
            catch
            {
                result = false;
            }

            Assert.AreEqual(false, result);
        }
Пример #18
0
        public static MyLinkedList <Fraction> GetRowOfFarey(int n)
        {
            var rowOfFarey = new MyLinkedList <Fraction>();

            rowOfFarey.Add(new Fraction(0, 1));
            rowOfFarey.Add(new Fraction(1, 1));
            int c = 1;

            while (c < n)
            {
                Node <Fraction> currentNode = rowOfFarey.head;
                while (currentNode.Next != null)
                {
                    if (currentNode.Value.denominator + currentNode.Next.Value.denominator < c + 2)
                    {
                        rowOfFarey.AddAfter(currentNode, currentNode.Value + currentNode.Next.Value);
                    }
                    currentNode = currentNode.Next;
                }
                c++;
            }
            return(rowOfFarey);
        }
Пример #19
0
        static void TestSinglyLinkedList()
        {
            Console.WriteLine(" ***** Singly Linked List Implementation ***** ");

            MyLinkedList <int> testList = new MyLinkedList <int>();

            //testing AddFirst
            for (int i = 0; i < 6; i++)
            {
                testList.AddFirst(i);
            }
            CollectionToString CtoS = new CollectionToString();

            Console.WriteLine(CtoS.MyLinkedListReporter(testList));

            //test reverse
            testList.Reverse();
            Console.WriteLine(CtoS.MyLinkedListReporter(testList));

            //test AddLast
            testList.AddLast(7);
            Console.WriteLine(CtoS.MyLinkedListReporter(testList));

            //test AddAfter
            //after head
            testList.AddAfter(5, 6);
            Console.WriteLine(CtoS.MyLinkedListReporter(testList));

            //in middle
            testList.AddAfter(4, 5);

            //after end
            testList.AddAfter(7, 8);
            Console.WriteLine(CtoS.MyLinkedListReporter(testList));

            //handle miss
            testList.AddAfter(9, 3);
            Console.WriteLine(CtoS.MyLinkedListReporter(testList));


            //test AddBefore
            //before head
            testList.AddBefore(5, 4);
            Console.WriteLine(CtoS.MyLinkedListReporter(testList));

            //in middle
            testList.AddBefore(3, 4);
            Console.WriteLine(CtoS.MyLinkedListReporter(testList));

            //before last
            testList.AddBefore(8, 7);
            Console.WriteLine(CtoS.MyLinkedListReporter(testList));

            //handle miss
            testList.AddBefore(9, 3);
            Console.WriteLine(CtoS.MyLinkedListReporter(testList));

            //test DeleteAt
            //first
            testList.DeleteAt(4);
            Console.WriteLine(CtoS.MyLinkedListReporter(testList));

            //middle
            testList.DeleteAt(4);
            Console.WriteLine(CtoS.MyLinkedListReporter(testList));

            //end
            testList.DeleteAt(8);
            Console.WriteLine(CtoS.MyLinkedListReporter(testList));

            //handle miss
            testList.DeleteAt(9);
            Console.WriteLine(CtoS.MyLinkedListReporter(testList));
        }