コード例 #1
0
        public void SumStraight(int[] first, int[] second, int[] expected)
        {
            var solution         = new SumLists();
            var firstLinkedList  = LinkedListHelper.FromCollection(first);
            var secondLinkedList = LinkedListHelper.FromCollection(second);

            var actual = solution.SumStraight(firstLinkedList, secondLinkedList);

            Assert.Equal(expected, LinkedListHelper.ToList(actual));
        }
コード例 #2
0
ファイル: SumListsTests.cs プロジェクト: ArlenLi/Algo
        public void SumListsInForwardOrderTest_TwoListsWithSameLength()
        {
            var head1 = new Node(9).AppendToTail(7).AppendToTail(8);
            var head2 = new Node(6).AppendToTail(8).AppendToTail(5);

            var result = SumLists.SumListsInForwardOrder(head1, head2);

            var resultString = "";

            while (result != null)
            {
                resultString += result.Data;
                resultString += "-";
                result        = result.Next;
            }

            resultString.TrimEnd('-').Should().Be("1-6-6-3");
        }
コード例 #3
0
ファイル: SumListsTests.cs プロジェクト: ArlenLi/Algo
        public void SumListsInReverseOrderTest_AdditionalCarrier_2()
        {
            var head1 = new Node(1);
            var head2 = new Node(9).AppendToTail(9).AppendToTail(9);

            var result = SumLists.SumListsInReverseOrder(head1, head2);

            var resultString = "";

            while (result != null)
            {
                resultString += result.Data;
                resultString += "-";
                result        = result.Next;
            }

            resultString.TrimEnd('-').Should().Be("0-0-0-1");
        }
コード例 #4
0
ファイル: SumListsTests.cs プロジェクト: ArlenLi/Algo
        public void SumListsInReverseOrderTest_TwoListsWithDifferentLength()
        {
            var head1 = new Node(7).AppendToTail(1).AppendToTail(6).AppendToTail(3).AppendToTail(1).AppendToTail(9);
            var head2 = new Node(5).AppendToTail(9).AppendToTail(2);

            var result = SumLists.SumListsInReverseOrder(head1, head2);

            var resultString = "";

            while (result != null)
            {
                resultString += result.Data;
                resultString += "-";
                result        = result.Next;
            }

            resultString.TrimEnd('-').Should().Be("2-1-9-3-1-9");
        }
コード例 #5
0
ファイル: SumListsTests.cs プロジェクト: ArlenLi/Algo
        public void SumListsInForwardOrderTest_AdditionalCarrier()
        {
            var head1 = new Node(7).AppendToTail(1).AppendToTail(7);
            var head2 = new Node(5).AppendToTail(9).AppendToTail(2);

            var result = SumLists.SumListsInForwardOrder(head1, head2);

            var resultString = "";

            while (result != null)
            {
                resultString += result.Data;
                resultString += "-";
                result        = result.Next;
            }

            resultString.TrimEnd('-').Should().Be("1-3-0-9");
        }
コード例 #6
0
        public void TestSumListsOptimized()
        {
            int[] l1       = new int[] { 6, 1, 7 };
            int[] l2       = new int[] { 2, 9, 5 };
            int[] expected = new int[] { 9, 1, 2 };

            LinkedListNode l1List       = LinkedListNode.BuildList(l1);
            LinkedListNode l2List       = LinkedListNode.BuildList(l2);
            LinkedListNode expectedList = LinkedListNode.BuildList(expected);

            LinkedListNode result = SumLists.AddListsOptimize(l1List, l2List);

            while (result != null && expectedList != null)
            {
                Assert.Equal(expectedList.data, result.data);
                result       = result.next;
                expectedList = expectedList.next;
            }
        }
コード例 #7
0
        public void Sum_Two_Lists_617_And_295_Is_912()
        {
            var first = new MyLinkedList <int>(7);

            first.Append(1);
            first.Append(6);

            var second = new MyLinkedList <int>(5);

            second.Append(9);
            second.Append(2);

            var result = new SumLists().FirstTry(first, second);

            Assert.Equal(2, result.Value);
            Assert.Equal(1, result.Next.Value);
            Assert.Equal(9, result.Next.Next.Value);
            Assert.Null(result.Next.Next.Next);
        }
コード例 #8
0
ファイル: Chapter2.cs プロジェクト: danielclas/CTCI
        public void tSumLists()
        {
            MyLinkedList<char> list1 = new MyLinkedList<char>();
            MyLinkedList<char> list2 = new MyLinkedList<char>();
            MyLinkedList<char> success = new MyLinkedList<char>();

            list1.AddNode('7');
            list1.AddNode('1');
            list1.AddNode('6');

            list2.AddNode('5');
            list2.AddNode('9');
            list2.AddNode('2');

            success.AddNode('2');
            success.AddNode('1');
            success.AddNode('9');

            Assert.IsTrue(SumLists.Sum(list1, list2).CompareList(success));
        }
コード例 #9
0
        public void Sum_Two_Lists_999_And_999_Is_1998()
        {
            var first = new MyLinkedList <int>(9);

            first.Append(9);
            first.Append(9);

            var second = new MyLinkedList <int>(9);

            second.Append(9);
            second.Append(9);

            var result = new SumLists().FirstTry(first, second);

            Assert.Equal(8, result.Value);
            Assert.Equal(9, result.Next.Value);
            Assert.Equal(9, result.Next.Next.Value);
            Assert.Equal(1, result.Next.Next.Next.Value);
            Assert.Null(result.Next.Next.Next.Next);
        }
コード例 #10
0
        public void TestSumLists()
        {
            int[] l1       = new int[] { 7, 1, 6 };
            int[] l2       = new int[] { 5, 9, 2 };
            int[] expected = new int[] { 2, 1, 9 };

            LinkedListNode l1List       = LinkedListNode.BuildList(l1);
            LinkedListNode l2List       = LinkedListNode.BuildList(l2);
            LinkedListNode expectedList = LinkedListNode.BuildList(expected);



            LinkedListNode result = SumLists.AddLists(l1List, l2List, 0);

            while (result != null && expectedList != null)
            {
                Assert.Equal(expectedList.data, result.data);
                result       = result.next;
                expectedList = expectedList.next;
            }
        }
コード例 #11
0
 public void SumListsFollowUpTest(string a, string b, string sum)
 {
     Assert.Equal(sum,
                  SumLists.SumForward(Node <int> .FromString(a), Node <int> .FromString(b)).ToLinkedListString());
 }