Пример #1
0
        public void Can_add_at_tail()
        {
            var expected  = 1;
            var expected2 = 2;
            var expected3 = 3;
            var sut       = new MyLinkedList();

            sut.AddAtTail(1);
            sut.AddAtTail(2);
            sut.AddAtTail(3);
            var actual  = sut.Get(0);
            var actual2 = sut.Get(1);
            var actual3 = sut.Get(2);

            Assert.AreEqual(expected, actual);
            Assert.AreEqual(expected2, actual2);
            Assert.AreEqual(expected3, actual3);
        }
Пример #2
0
        public void Test2()
        {
            var list = new MyLinkedList();

            list.AddAtHead(1);
            list.AddAtTail(3);
            list.AddAtIndex(1, 2);
            Assert.AreEqual(1, list.Get(0));
            list.DeleteAtIndex(0);
            Assert.AreEqual(2, list.Get(0));
        }
        public void Example1()
        {
            var myLinkedList = new MyLinkedList();

            myLinkedList.AddAtHead(1);
            myLinkedList.AddAtTail(3);
            myLinkedList.AddAtIndex(1, 2);

            Assert.AreEqual(3, myLinkedList.Get(2));

            myLinkedList.DeleteAtIndex(1);

            Assert.AreEqual(3, myLinkedList.Get(1));
        }
Пример #4
0
        public void Test2()
        {
            var list = new MyLinkedList();

            list.AddAtHead(2);
            list.DeleteAtIndex(1);
            list.AddAtHead(2);
            list.AddAtHead(7);
            list.AddAtHead(3);
            list.AddAtHead(2);
            list.AddAtHead(5);
            list.AddAtTail(5);
            Assert.AreEqual(2, list.Get(5));
            list.DeleteAtIndex(6);
            list.DeleteAtIndex(4);
        }
Пример #5
0
        public void Example1_Can_pass_leet_code_first_test_case()
        {
            //["MyLinkedList","addAtHead","addAtTail","addAtIndex","get","deleteAtIndex","get"]
            //[[],[1],[3],[1,2],[1],[1],[1]]
            var expected  = 2;
            var expected2 = 3;
            var sut       = new MyLinkedList();

            sut.AddAtHead(1);
            sut.AddAtTail(3);
            sut.AddAtIndex(1, 2);
            var actual = sut.Get(1);

            sut.DeleteAtIndex(1);
            var actual2 = sut.Get(1);

            Assert.AreEqual(expected, actual);
            Assert.AreEqual(expected2, actual2);
        }
Пример #6
0
        public void Can_delete_at_index()
        {
            var expected  = 2;
            var expected2 = 4;
            var sut       = new MyLinkedList();

            sut.AddAtTail(1);
            sut.AddAtTail(2);
            sut.AddAtTail(3);
            sut.AddAtTail(4);
            sut.AddAtTail(5);
            sut.AddAtTail(6);
            sut.DeleteAtIndex(5);
            sut.DeleteAtIndex(0);
            sut.DeleteAtIndex(1);
            sut.DeleteAtIndex(20);
            var actual  = sut.Get(0);
            var actual2 = sut.Get(1);

            Assert.AreEqual(expected, actual);
            Assert.AreEqual(expected2, actual2);
        }
Пример #7
0
        public void Test()
        {
            var list = new MyLinkedList();

            list.AddAtHead(84);
            list.AddAtTail(2);
            list.AddAtTail(39);
            Assert.AreEqual(-1, list.Get(3));
            Assert.AreEqual(2, list.Get(1));

            list.AddAtTail(42);
            list.AddAtIndex(1, 80);
            list.AddAtHead(14);
            list.AddAtHead(1);
            list.AddAtTail(53);
            list.AddAtTail(98);
            list.AddAtTail(19);
            list.AddAtTail(12);
            Assert.AreEqual(84, list.Get(2));

            list.AddAtHead(16);
            list.AddAtHead(33);
            list.AddAtIndex(4, 17);
            list.AddAtIndex(6, 8);
            list.AddAtHead(37);
            list.AddAtTail(43);
            list.DeleteAtIndex(11);
            list.AddAtHead(80);
            list.AddAtHead(31);
            list.AddAtIndex(13, 23);
            list.AddAtTail(17);
            Assert.AreEqual(16, list.Get(4));

            list.AddAtIndex(10, 0);
            list.AddAtTail(21);
            list.AddAtHead(73);
            list.AddAtHead(22);
            list.AddAtIndex(24, 37);
            list.AddAtTail(14);
            list.AddAtHead(97);
            list.AddAtHead(8);
            Assert.AreEqual(37, list.Get(6));

            list.DeleteAtIndex(17);
            list.AddAtTail(50);
            list.AddAtTail(28);
            list.AddAtHead(76);
            list.AddAtTail(79);
            Assert.AreEqual(23, list.Get(18));

            list.DeleteAtIndex(30);
            list.AddAtTail(5);
            list.AddAtHead(9);
            list.AddAtTail(83);
            list.DeleteAtIndex(3);
            list.AddAtTail(40);
            list.DeleteAtIndex(26);
            list.AddAtIndex(20, 90);
            list.DeleteAtIndex(30);
            list.AddAtTail(40);
            list.AddAtHead(56);
            list.AddAtIndex(15, 23);
            list.AddAtHead(51);
            list.AddAtHead(21);
            Assert.AreEqual(19, list.Get(26));

            list.AddAtHead(83);
            Assert.AreEqual(17, list.Get(30));

            list.AddAtHead(12);
            list.DeleteAtIndex(8);
            Assert.AreEqual(56, list.Get(4));

            list.AddAtHead(20);
            list.AddAtTail(45);
            Assert.AreEqual(31, list.Get(10));

            list.AddAtHead(56);
            Assert.AreEqual(17, list.Get(18));

            list.AddAtTail(33);
            Assert.AreEqual(12, list.Get(2));

            list.AddAtTail(70);
            list.AddAtHead(57);
            list.AddAtIndex(31, 24);
            list.AddAtIndex(16, 92);
            list.AddAtHead(40);
            list.AddAtHead(23);
            list.DeleteAtIndex(26);
            Assert.AreEqual(40, list.Get(1));

            list.AddAtHead(92);
            list.AddAtIndex(3, 78);
            list.AddAtTail(42);
            Assert.AreEqual(37, list.Get(18));

            list.AddAtIndex(39, 9);
            Assert.AreEqual(76, list.Get(13));

            list.AddAtIndex(33, 17);
            Assert.AreEqual(42, list.Get(51));

            list.AddAtIndex(18, 95);
            list.AddAtIndex(18, 33);
            list.AddAtHead(80);
            list.AddAtHead(21);
            list.AddAtTail(7);
            list.AddAtIndex(17, 46);
            Assert.AreEqual(80, list.Get(33));

            list.AddAtHead(60);
            list.AddAtTail(26);
            list.AddAtTail(4);
            list.AddAtHead(9);
            Assert.AreEqual(43, list.Get(45));

            list.AddAtTail(38);
            list.AddAtHead(95);
            list.AddAtTail(78);

            Assert.AreEqual(40, list.Get(54));
            list.AddAtIndex(42, 86);
        }
Пример #8
0
        public String Test(String input1, String input2)
        {
            var actions    = JsonConvert.DeserializeObject <String[]>(input1);
            var parameters = JsonConvert.DeserializeObject <Int32[][]>(input2);

            var result = new List <Int32?>();

            MyLinkedList linkedList = null;

            Console.WriteLine("MyLinkedList linkedList = null;");
            for (Int32 i = 0; i < actions.Length; i++)
            {
                String action = actions[i];
                switch (action)
                {
                case "MyLinkedList":
                    Console.WriteLine("linkedList = new MyLinkedList(); // Initialize empty LinkedList");
                    linkedList = new MyLinkedList();
                    result.Add(null);
                    break;

                case "get":
                    Console.Write("linkedList.Get({0});", parameters[i][0]);
                    Int32?value = linkedList?.Get(index: parameters[i][0]);
                    if (value != null)
                    {
                        Console.WriteLine("\t\t// returns: {0}{1}", value, value == -1 ? " (not found)" : null);
                    }
                    else
                    {
                        Console.WriteLine();
                    }
                    result.Add(value);
                    break;

                case "addAtHead":
                    Console.Write("linkedList.AddAtHead({0});", parameters[i][0]);
                    linkedList?.AddAtHead(val: parameters[i][0]);
                    if (linkedList != null)
                    {
                        Console.WriteLine("\t\t// the linked list is {0}", String.Join("->", linkedList));
                    }
                    else
                    {
                        Console.WriteLine();
                    }
                    result.Add(null);
                    break;

                case "addAtTail":
                    Console.Write("linkedList.AddAtTail({0});", parameters[i][0]);
                    linkedList?.AddAtTail(val: parameters[i][0]);
                    if (linkedList != null)
                    {
                        Console.WriteLine("\t\t// the linked list is {0}", String.Join("->", linkedList));
                    }
                    else
                    {
                        Console.WriteLine();
                    }
                    result.Add(null);
                    break;

                case "addAtIndex":
                    Console.Write("linkedList.AddAtIndex({0}, {1});", parameters[i][0], parameters[i][1]);
                    linkedList?.AddAtIndex(index: parameters[i][0], val: parameters[i][1]);
                    if (linkedList != null)
                    {
                        Console.WriteLine("\t\t// the linked list is {0}", String.Join("->", linkedList));
                    }
                    else
                    {
                        Console.WriteLine();
                    }
                    result.Add(null);
                    break;

                case "deleteAtIndex":
                    Console.Write("linkedList.DeleteAtIndex({0});", parameters[i][0]);
                    linkedList?.DeleteAtIndex(index: parameters[i][0]);
                    if (linkedList != null)
                    {
                        Console.WriteLine("\t\t// the linked list is {0}", String.Join("->", linkedList));
                    }
                    else
                    {
                        Console.WriteLine();
                    }
                    result.Add(null);
                    break;
                }
            }

            return(JsonConvert.SerializeObject(result));
        }