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(); }
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(); }
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(); }
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); }
//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)); }