示例#1
0
        static void Main(string[] args)
        {
            LinkedList list = new LinkedList();

            list.Add("one") ;
            list.Add("two");
            list.Add("three");
            list.Add("four");
            list.Add("five");

            Console.WriteLine("List size = " + list.Count);

            for (Node node = list.headNode; node != null; node = node.nextNode)
            {
                Console.WriteLine((string)node.item);
            }

            Console.WriteLine();
            Console.WriteLine("Reversing list...");
            list.Reverse();

            Console.WriteLine();
            Console.WriteLine("List size = " + list.Count);

            for (Node node = list.headNode; node != null; node = node.nextNode)
            {
                Console.WriteLine((string)node.item);
            }

            Console.WriteLine();
            Console.WriteLine("Done, press any key to continue...");
            Console.ReadLine();
        }
示例#2
0
        static void Main(string[] args)
        {
            LinkedList lList = new LinkedList();
            Node       node1 = new Node(2);
            Node       node2 = new Node(1);
            Node       node3 = new Node(4);
            Node       node4 = new Node(3);

            node1.next = node2;
            node2.next = node3;
            node3.next = node4;
            lList.head = node1;

            Node current = lList.head;

            Console.WriteLine("Before reverse");
            while (current != null)
            {
                Console.WriteLine(current.data);
                current = current.next;
            }

            lList.Reverse(lList.head);
            //lList.head = ReverseIterative(lList.head);

            current = lList.head;
            Console.WriteLine("After reverse");
            while (current != null)
            {
                Console.WriteLine(current.data);
                current = current.next;
            }
            Console.ReadKey();
        }
示例#3
0
        static void Main(string[] args)
        {
            LinkedList linkList = new LinkedList();

            linkList.AddNode(new Node(1));
            linkList.AddNode(new Node(2));
            linkList.AddNode(new Node(3));
            linkList.AddNode(new Node(4));
            linkList.AddNode(new Node(5));

            Console.WriteLine("Original LinkedList");
            linkList.Print();
            Console.WriteLine();

            linkList.Reverse();
            Console.WriteLine("Reversed LinkedList");
            linkList.Print();

            Console.ReadLine();
        }
示例#4
0
        static void Main(string[] args)
        {
            Node head = null;

            LinkedList.Append(ref head, 25);
            LinkedList.Append(ref head, 5);
            LinkedList.Append(ref head, 18);
            LinkedList.Append(ref head, 7);

            Console.WriteLine("Linked list:");
            LinkedList.Print(head);

            Console.WriteLine();
            Console.WriteLine("Reversed Linked list:");
            LinkedList.Reverse(ref head);
            LinkedList.Print(head);

            Console.WriteLine();
            Console.WriteLine("Reverse of Reversed Linked list:");
            LinkedList.ReverseUsingRecursion(head);
            head = LinkedList.newHead;
            LinkedList.PrintRecursive(head);
        }
示例#5
0
        //Test my implementation against the one built into Enumerable
        static void Test(int start, int end)
        {
            LinkedList <int> testList0 = new LinkedList <int>();
            LinkedList <int> testList1 = new LinkedList <int>();

            for (var i = start; i < end; i++)
            {
                testList0.AddLast(i);
                testList1.AddLast(i);
            }

            Console.WriteLine("Not Reversed:");
            foreach (var item in testList0)
            {
                Console.Write(string.Format("{0} ", item));
            }
            Console.WriteLine();

            var startTime = DateTime.Now;

            Reverse(ref testList0);
            Console.WriteLine("\nReversed (my implementation):");
            foreach (var item in testList0)
            {
                Console.Write(string.Format("{0} ", item));
            }
            Console.WriteLine(string.Format("\nTime taken: {0}s", (DateTime.Now - startTime).TotalSeconds));

            startTime = DateTime.Now;
            Console.WriteLine("\nReversed (Enumerable implementation):");
            foreach (var item in testList1.Reverse())
            {
                Console.Write(string.Format("{0} ", item));
            }
            Console.WriteLine(string.Format("\nTime taken: {0}s\n", (DateTime.Now - startTime).TotalSeconds));
        }