Пример #1
0
        public void TestIfHeadPointsToFirstNode()
        {
            SLinkedList newList = new SLinkedList();

            newList.Insert(5);
            newList.Insert(25);
            Assert.Equal(5, newList.Head.Next.Value);
        }
Пример #2
0
        public void TestIfIncludesCanReturnFalse()
        {
            SLinkedList newList = new SLinkedList();

            newList.Insert(5);
            newList.Insert(55);
            newList.Insert(50);
            Assert.False(newList.Includes(99));
        }
Пример #3
0
        public void TestIfIncludesCanReturnTrue()
        {
            SLinkedList newList = new SLinkedList();

            newList.Insert(5);
            newList.Insert(15);
            newList.Insert(25);
            Assert.True(newList.Includes(15));
        }
Пример #4
0
        public void TestIfNodeHasMultiInserts()
        {
            SLinkedList newList = new SLinkedList();

            newList.Insert(5);
            newList.Insert(10);
            newList.Insert(15);
            Assert.Equal(15, newList.Head.Value);
        }
        public static void Main()
        {
            SLinkedList list1 = new SLinkedList();
            SLinkedList list2 = new SLinkedList();

            list1.Insert(1);
            list1.Insert(2);
            list1.Insert(3);
            list2.Insert(4);
            list2.Insert(5);
            list2.Insert(6);

            MergeList(list1, list2);
            //Node resultMerge = MergeList(list1, list2);
            //Console.WriteLine(resultMerge.Value);
        }
Пример #6
0
        public void TestIfInsertIntoLinkList()
        {
            SLinkedList newList = new SLinkedList();

            newList.Insert(5);
            Assert.Equal(5, newList.Head.Value);
        }
Пример #7
0
        public void MergeTwoLinkedLists()
        {
            //Arrange
            Node node1  = new Node(1);
            Node node2  = new Node(2);
            Node node3  = new Node(3);
            Node node4  = new Node(4);
            Node node5  = new Node(5);
            Node node6  = new Node(6);
            Node node7  = new Node(7);
            Node node8  = new Node(8);
            Node node9  = new Node(9);
            Node node10 = new Node(10);

            SLinkedList list2 = new SLinkedList(node10);
            SLinkedList list1 = new SLinkedList(node9);

            SLinkedList list3 = new SLinkedList(node10);

            list1.Insert(node7.Data);
            list1.Insert(node5.Data);
            list1.Insert(node3.Data);
            list1.Insert(node1.Data);

            list2.Insert(node8.Data);
            list2.Insert(node6.Data);
            list2.Insert(node4.Data);
            list2.Insert(node2.Data);

            list3.Insert(node9.Data);
            list3.Insert(node8.Data);
            list3.Insert(node7.Data);
            list3.Insert(node6.Data);
            list3.Insert(node5.Data);
            list3.Insert(node4.Data);
            list3.Insert(node3.Data);
            list3.Insert(node2.Data);
            list3.Insert(node1.Data);

            //Act
            SLinkedList check  = MergeTwoLL(list1, list2);
            int         check2 = check.ValueAtIndex(1);
            int         check3 = list3.ValueAtIndex(1);

            //Assert
            Assert.Equal(check2, check3);
        }
Пример #8
0
        public void ValueAtIndexTwoIsFour()
        {
            //Arrange
            Node node1 = new Node(7);
            Node node2 = new Node(2);
            Node node3 = new Node(4);
            Node node4 = new Node(9);
            Node node5 = new Node(3);

            SLinkedList list7 = new SLinkedList(node1);

            list7.Insert(node2.Data);
            list7.Insert(node3.Data);
            list7.Insert(node4.Data);
            list7.Insert(node5.Data);
            //Act
            int check = list7.ValueAtIndex(2);

            //Assert
            Assert.Equal(4, check);
        }
Пример #9
0
        public void TestInsertTwo()
        {
            //Arrange
            Node        node1 = new Node(7);
            Node        node2 = new Node(2);
            SLinkedList list  = new SLinkedList(node1);

            list.Insert(node2.Data);
            //Act
            bool check = list.Includes(2);

            //Assert
            Assert.True(check);
        }
Пример #10
0
        public void TestAppendFour()
        {
            //Arrange
            Node        node1 = new Node(7);
            Node        node2 = new Node(2);
            Node        node3 = new Node(4);
            SLinkedList list  = new SLinkedList(node1);

            list.Insert(node2.Data);
            list.Append(node3.Data);
            //Act
            bool check = list.Includes(4);

            //Assert
            Assert.True(check);
        }
Пример #11
0
        public void CanInsertNineAfterSeven()
        {
            //Arrange
            Node        node1 = new Node(7);
            Node        node2 = new Node(2);
            Node        node3 = new Node(4);
            Node        node4 = new Node(9);
            SLinkedList list  = new SLinkedList(node1);

            list.Insert(node2.Data);
            list.Append(node3.Data);
            list.InsertBefore(node4, node1);
            //Act
            bool check = list.Includes(9);

            //Assert
            Assert.True(check);
        }
Пример #12
0
        public void WhereKIsNegative()
        {
            //Arrange
            Node node3 = new Node(4);
            Node node5 = new Node(3);
            Node node1 = new Node(7);
            Node node4 = new Node(9);
            Node node2 = new Node(2);

            SLinkedList list = new SLinkedList(node1);

            list.Insert(node2.Data);
            list.Append(node3.Data);
            list.InsertBefore(node4, node1);
            list.InsertAfter(node5, node1);
            //Act
            int check = list.ValueAtIndex(-1);

            //Assert
            Assert.Equal(-1, check);
        }
Пример #13
0
        public void RequestedIndexOutsideLimit()
        {
            //Arrange
            Node node3 = new Node(4);
            Node node5 = new Node(3);
            Node node1 = new Node(7);
            Node node4 = new Node(9);
            Node node2 = new Node(2);

            SLinkedList list = new SLinkedList(node1);

            list.Insert(node2.Data);
            list.Append(node3.Data);
            list.InsertBefore(node4, node1);
            list.InsertAfter(node5, node1);
            //Act
            int check = list.ValueAtIndex(6);

            //Assert
            Assert.Equal(-1, check);
        }
        /// <summary>
        /// Merges two Linked Lists into one Linked List
        /// </summary>
        /// <param name="list1">First Linked List to be merged</param>
        /// <param name="list2">Second Linked List to be merged</param>
        /// <returns>Merged Linked List</returns>
        public static SLinkedList MergeTwoLL(SLinkedList list1, SLinkedList list2)
        {
            int length1 = list1.LLLength();
            int length2 = list2.LLLength();

            if (length2 > length1)
            {
                list2.Head = list2.Current;
                list1.Head = list1.Current;

                SLinkedList list = new SLinkedList(list2.Current);
                list.Insert(list1.Current.Data);

                list2.Current = list2.Current.Next;
                list1.Current = list1.Current.Next;


                while (list2.Current.Next != null && list1.Current.Next != null)
                {
                    list.Insert(list2.Current.Data);
                    list.Insert(list1.Current.Data);
                    list2.Current = list2.Current.Next;
                    list1.Current = list1.Current.Next;
                }
                if (list2.Current.Next != null)
                {
                    while (list2.Current.Next != null)
                    {
                        list.Insert(list2.Current.Data);
                        list2.Current = list2.Current.Next;
                    }
                }
                list.Insert(list2.Current.Data);
                list.Insert(list1.Current.Data);

                return(list);
            }
            else
            {
                list1.Head = list1.Current;
                list2.Head = list2.Current;

                SLinkedList list = new SLinkedList(list1.Current);
                list.Insert(list1.Current.Data);

                list1.Current = list1.Current.Next;
                list2.Current = list2.Current.Next;


                while (list1.Current.Next != null && list2.Current.Next != null)
                {
                    list.Insert(list1.Current.Data);
                    list.Insert(list2.Current.Data);
                    list1.Current = list1.Current.Next;
                    list2.Current = list2.Current.Next;
                }
                if (list1.Current.Next != null)
                {
                    while (list1.Current.Next != null)
                    {
                        list.Insert(list1.Current.Data);
                        list1.Current = list1.Current.Next;
                    }
                }
                list.Insert(list1.Current.Data);
                list.Insert(list2.Current.Data);
                return(list);
            }
        }