Exemple #1
0
        public void Can_add_at_index()
        {
            var expected  = 0;
            var expected2 = 1;
            var expected3 = 2;
            var expected4 = 3;
            var expected5 = -1;


            var sut = new MyLinkedList();

            sut.AddAtIndex(0, 1);
            sut.AddAtIndex(0, 0);
            sut.AddAtIndex(2, 3);
            sut.AddAtIndex(2, 2);

            var actual  = sut.Get(0);
            var actual2 = sut.Get(1);
            var actual3 = sut.Get(2);
            var actual4 = sut.Get(3);
            var actual5 = sut.Get(10);


            Assert.AreEqual(expected, actual);
            Assert.AreEqual(expected2, actual2);
            Assert.AreEqual(expected3, actual3);
            Assert.AreEqual(expected4, actual4);
            Assert.AreEqual(expected5, actual5);
        }
Exemple #2
0
 public void MyLinkedList()
 {
     linkedList.AddAtIndex(0, 10);
     linkedList.AddAtIndex(0, 20);
     linkedList.AddAtIndex(1, 30);
     Assert.Equal(20, linkedList.Get(0));
 }
        public void Example2()
        {
            var myLinkedList = new MyLinkedList();

            myLinkedList.AddAtIndex(0, 10);
            myLinkedList.AddAtIndex(0, 20);
            myLinkedList.AddAtIndex(1, 30);

            Assert.AreEqual(20, myLinkedList.Get(0));
        }
Exemple #4
0
        public void Test_MyLinkedList3()
        {
            MyLinkedList linkedList = new MyLinkedList(); // Initialize empty LinkedList

            linkedList.AddAtHead(7);
            linkedList.AddAtHead(2);
            linkedList.AddAtHead(1);
            linkedList.AddAtIndex(3, 0);
            linkedList.DeleteAtIndex(2);
            linkedList.AddAtHead(6);
            linkedList.AddAtTail(4);
            Assert.Equal(4, linkedList.Get(4));
            linkedList.AddAtHead(4);
            linkedList.AddAtIndex(5, 0);
            linkedList.AddAtHead(6);
        }
    /**
     * Your MyLinkedList object will be instantiated and called as such:
     * MyLinkedList obj = new MyLinkedList();
     * int param_1 = obj.Get(index);
     * obj.AddAtHead(val);
     * obj.AddAtTail(val);
     * obj.AddAtIndex(index,val);
     * obj.DeleteAtIndex(index);
     */


    // Driver Code
    public static void Main(String[] args)
    {//  61204
        MyLinkedList list = new MyLinkedList();

        list.AddAtHead(7);
        list.AddAtHead(2);
        list.AddAtHead(1);
        list.AddAtIndex(3, 0);
        list.DeleteAtIndex(2);
        list.AddAtHead(6);
        list.AddAtTail(4);
        list.Get(4);
        list.AddAtHead(4);
        list.AddAtIndex(5, 0);
        list.AddAtHead(6);
        list.printList();
    }
        public void MyLinkedListTest1()
        {
            MyLinkedList linkedList = new MyLinkedList();

            linkedList.AddAtHead(7);
            linkedList.AddAtHead(2);
            linkedList.AddAtHead(1);
            linkedList.AddAtIndex(3, 0);
            linkedList.DeleteAtIndex(2);
            linkedList.AddAtHead(6);
            linkedList.AddAtTail(4);

            var expected = 4;

            Assert.AreEqual(expected, linkedList.Get(4));

            linkedList.AddAtHead(4);
            linkedList.AddAtIndex(5, 0);
            linkedList.AddAtHead(6);
        }
Exemple #7
0
        public void Test_MyLinkedList()
        {
            MyLinkedList linkedList = new MyLinkedList(); // Initialize empty LinkedList

            linkedList.AddAtHead(1);
            linkedList.AddAtTail(3);
            linkedList.AddAtIndex(1, 2);        // linked list becomes 1->2->3
            Assert.Equal(2, linkedList.Get(1)); // returns 2
            linkedList.DeleteAtIndex(1);        // now the linked list is 1->3
            Assert.Equal(3, linkedList.Get(1)); // returns 3
        }
        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));
        }
Exemple #9
0
        /*
         * Design your implementation of the linked list. You can choose to use the singly linked list or the doubly linked list.
         * A node in a singly linked list should have two attributes: val and next.
         * val is the value of the current node, and next is a pointer/reference to the next node.
         * If you want to use the doubly linked list, you will need one more attribute prev to indicate the previous node in the linked list.
         * Assume all nodes in the linked list are 0-indexed.
         *
         * Implement these functions in your linked list class:
         *
         * get(index) : Get the value of the index-th node in the linked list. If the index is invalid, return -1.
         * addAtHead(val) : Add a node of value val before the first element of the linked list.
         * After the insertion, the new node will be the first node of the linked list.
         * addAtTail(val) : Append a node of value val to the last element of the linked list.
         * addAtIndex(index, val) : Add a node of value val before the index-th node in the linked list.
         * If index equals to the length of linked list, the node will be appended to the end of linked list.
         * If index is greater than the length, the node will not be inserted.
         * deleteAtIndex(index) : Delete the index-th node in the linked list, if the index is valid.
         *
         *
         * Example:
         *
         * Input:
         * ["MyLinkedList","addAtHead","addAtTail","addAtIndex","get","deleteAtIndex","get"]
         * [[],[1],[3],[1,2],[1],[1],[1]]
         * Output:
         * [null,null,null,null,2,null,3]
         *
         * Explanation:
         * MyLinkedList linkedList = new MyLinkedList(); // Initialize empty LinkedList
         * linkedList.addAtHead(1);
         * linkedList.addAtTail(3);
         * linkedList.addAtIndex(1, 2);  // linked list becomes 1->2->3
         * linkedList.get(1);            // returns 2
         * linkedList.deleteAtIndex(1);  // now the linked list is 1->3
         * linkedList.get(1);            // returns 3
         *
         *
         * Constraints:
         *
         * 0 <= index,val <= 1000
         * Please do not use the built-in LinkedList library.
         * At most 2000 calls will be made to get, addAtHead, addAtTail,  addAtIndex and deleteAtIndex.
         *
         */
        public void Run()
        {
            MyLinkedList l = new MyLinkedList();

            l.AddAtHead(4);
            l.AddAtHead(3);
            l.AddAtHead(2);
            l.AddAtHead(1);
            l.AddAtTail(0);
            l.AddAtIndex(2, 15);
            System.Console.WriteLine(l.Get(2));
        }
        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));
        }
Exemple #11
0
        public void MyLinkedListTest()
        {
            MyLinkedList linkedList = new MyLinkedList();

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

            var expected = 2;

            Assert.AreEqual(expected, linkedList.Get(1));

            linkedList.DeleteAtIndex(1);

            expected = 3;
            Assert.AreEqual(expected, linkedList.Get(1));
        }
Exemple #12
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);
        }
Exemple #13
0
        public Design_Linked_List()
        {
            var a = new MyLinkedList();

            a.AddAtIndex(0, 2);
        }
Exemple #14
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);
        }
        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));
        }