Exemplo n.º 1
0
        public static void Main()
        {
            MyLinkedList list = new MyLinkedList(10);

            list.AddFirst(11);
            list.AddFirst(12);
            list.AddFirst(13);
            list.Add(9, 4);
            list.Add(15, 4);
            list.PrintList();
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            MyLinkedList <char> myLinkedList = new MyLinkedList <char>();

            myLinkedList.AddFirst('a');
            myLinkedList.AddFirst('b');
            myLinkedList.AddFirst('c');

            MyNode <char> a       = myLinkedList.First;
            MyNode <char> current = a;

            while (a != null)
            {
                Console.WriteLine(current.Value);
                current = current.Next;
            }
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            var linkedList = new MyLinkedList();

            linkedList.AddLast(10);
            linkedList.AddLast(20);
            linkedList.AddLast(30);
            linkedList.AddFirst(5);
            linkedList.AddFirst(1);

            Console.WriteLine(linkedList.IndexOf(30));
            Console.WriteLine(linkedList.Contains(1));
            Console.WriteLine(linkedList.GetSize());

            Console.WriteLine(linkedList.GetSize());
            Console.WriteLine(String.Join(',', linkedList.ToArray()));
            linkedList.Reverse();
            Console.WriteLine(String.Join(',', linkedList.ToArray()));
            Console.WriteLine(linkedList.GetKthFromTheEnd(3));

            linkedList.PrintMiddle();
        }
Exemplo n.º 4
0
        public static void Main()
        {
            MyLinkedList <string> myList = new MyLinkedList <string>();

            myList.AddLast("Milko");
            myList.AddLast("Ilio");
            myList.AddFirst("Koko");
            myList.RemoveFirst();
            myList.RemoveLast();
            myList.RemoveFirst();

            // Next row will throw an exception if uncomment
            //myList.RemoveLast();
        }
Exemplo n.º 5
0
        public static void Test(MyLinkedList <string> sentence)
        {
            // Create the link list.
            Display(sentence, "MyLinkedList: ");
            Console.WriteLine("sentence.Contains(\"jumps\") = {0}",
                              sentence.Contains("jumps"));

            // Add the word 'today' to the beginning of the linked list.
            sentence.AddFirst("today");
            Display(sentence, "Test 1: Add 'today' to beginning of the list:");

            // Move the first node to be the last node.
            MyLinkedListNode <string> mark1 = sentence.Head;

            sentence.RemoveFirst();
            sentence.AddLast(mark1);
            Display(sentence, "Test 2: Move first node to be last node:");

            // Change the last node to 'yesterday'.
            sentence.RemoveLast();
            sentence.AddLast("yesterday");
            Display(sentence, "Test 3: Change the last node to 'yesterday':");

            // Move the last node to be the first node.
            mark1 = sentence.Tail;
            sentence.RemoveLast();
            sentence.AddFirst(mark1);
            Display(sentence, "Test 4: Move last node to be first node:");

            // Indicate the last occurence of 'the'.
            sentence.RemoveFirst();
            MyLinkedListNode <string> current = sentence.FindLast("the");

            IndicateNode(sentence, current, "Test 5: Indicate last occurence of 'the':");

            // Add 'lazy' and 'old' after 'the' (the LinkedListNode named current).
            sentence.AddAfter(current, "old");
            sentence.AddAfter(current, "lazy");
            IndicateNode(sentence, current, "Test 6: Add 'lazy' and 'old' after 'the':");

            // Indicate 'fox' node.
            current = sentence.Find("fox");
            IndicateNode(sentence, current, "Test 7: Indicate the 'fox' node:");

            // Add 'quick' and 'brown' before 'fox':
            sentence.AddBefore(current, "quick");
            sentence.AddBefore(current, "brown");
            IndicateNode(sentence, current, "Test 8: Add 'quick' and 'brown' before 'fox':");

            // Keep a reference to the current node, 'fox',
            // and to the previous node in the list. Indicate the 'dog' node.
            mark1 = current;
            MyLinkedListNode <string> mark2 = current.Previous;

            current = sentence.Find("dog");
            IndicateNode(sentence, current, "Test 9: Indicate the 'dog' node:");

            // The AddBefore method throws an InvalidOperationException
            // if you try to add a node that already belongs to a list.

            Console.WriteLine("Test 10: Throw exception by adding node (fox) already in the list:");
            try
            {
                sentence.AddBefore(current, mark1);
            }
            catch (InvalidOperationException ex)
            {
                Console.WriteLine("Exception message: {0}", ex.Message);
            }
            Console.WriteLine();

            // Remove the node referred to by mark1, and then add it
            // before the node referred to by current.
            // Indicate the node referred to by current.
            sentence.Remove(mark1);
            sentence.AddBefore(current, mark1);
            IndicateNode(sentence, current, "Test 11: Move a referenced node (fox) before the current node (dog):");

            // Remove the node referred to by current.
            sentence.Remove(current);
            IndicateNode(sentence, current, "Test 12: Remove current node (dog) and attempt to indicate it:");

            // Add the node after the node referred to by mark2.
            sentence.AddAfter(mark2, current);
            IndicateNode(sentence, current, "Test 13: Add node removed in test 11 after a referenced node (brown):");

            // The Remove method finds and removes the
            // first node that that has the specified value.
            sentence.Remove("old");
            Display(sentence, "Test 14: Remove node that has the value 'old':");

            // When the linked list is cast to ICollection(Of String),
            // the Add method adds a node to the end of the list.
            sentence.RemoveLast();
            ICollection <string> icoll = sentence;

            icoll.Add("rhinoceros");
            Display(sentence, "Test 15: Remove last node, cast to ICollection, and add 'rhinoceros':");

            Console.WriteLine("Test 16: Copy the list to an array:");
            // Create an array with the same number of
            // elements as the inked list.
            string[] sArray = new string[sentence.Count];
            sentence.CopyTo(sArray, 0);

            foreach (string s in sArray)
            {
                Console.WriteLine(s);
            }

            // Release all the nodes.
            sentence.Clear();

            Console.WriteLine();
            Console.WriteLine("Test 17: Clear linked list. Contains 'jumps' = {0}",
                              sentence.Contains("jumps"));

            Console.WriteLine();
        }