public void MergeListTest(SingleLinkedList list) { //SingleLinkedList list1 = new SingleLinkedList(); SingleLinkedList list2 = new SingleLinkedList(); //list1.CreateList(); list2.CreateList(); list.BubbleSortExData(); //list1.BubbleSortExData(); list2.BubbleSortExData(); Console.WriteLine("First List - "); list.DisplayList(); Console.WriteLine("Second List - "); list2.DisplayList(); SingleLinkedList list3; list3 = list.Merge1(list2); Console.WriteLine("MergedListByData - "); list3.DisplayList(); Console.WriteLine("First List - "); list.DisplayList(); Console.WriteLine("Second List - "); list2.DisplayList(); list3 = list.Merge2(list2); Console.WriteLine("MergedListByLinks - "); list3.DisplayList(); }
public void MergeList(SingleLinkedList list1) { SingleLinkedList list2 = new SingleLinkedList(); list2.CreateList(); list1.BubbleSortExData(); list2.BubbleSortExData(); Console.WriteLine("Prva lista .... "); list1.DisplayList(); Console.WriteLine("Druga lista ...."); list2.DisplayList(); SingleLinkedList list3; list3 = list1.Merge1(list2); Console.WriteLine("Spojena lista...."); list3.DisplayList(); }
private static void MergeSortedLinkList() { SingleLinkedList list1 = new SingleLinkedList(); SingleLinkedList list2 = new SingleLinkedList(); list1.CreateList(); list2.CreateList(); list1.BubbleSortExData(); list2.BubbleSortExData(); Console.WriteLine("First List-"); list1.DisplayList(); Console.WriteLine("Second List-"); list2.DisplayList(); SingleLinkedList list3; //Merging by creating a new list list3 = list1.Merge1(list2); Console.WriteLine("Merged List-"); list3.DisplayList(); //To showcase that the original lists do not change. Console.WriteLine("First List-"); list1.DisplayList(); Console.WriteLine("Second List-"); list2.DisplayList(); //Merging by rearranging links list3 = list1.Merge2(list2); Console.WriteLine("Merged List-"); list3.DisplayList(); //To showcase that the original lists change. Console.WriteLine("First List-"); list1.DisplayList(); Console.WriteLine("Second List-"); list2.DisplayList(); }
static void Main(string[] args) { int choice, data, k, x; SingleLinkedList list = new SingleLinkedList(); list.CreateList(); while (true) { Console.WriteLine(" 1. Display list"); Console.WriteLine(" 2. Count the number of nodes"); Console.WriteLine(" 3. Search for an element"); Console.WriteLine(" 4. Insert in empty list/Insert in beginning of the list"); Console.WriteLine(" 5. Insert a node at the end of the list"); Console.WriteLine(" 6. Insert a node after a specified node"); Console.WriteLine(" 7. Insert a node before a specified node"); Console.WriteLine(" 8. Insert a node at a given position"); Console.WriteLine(" 9. Delete first node"); Console.WriteLine("10. Delete last node"); Console.WriteLine("11. Delete any node"); Console.WriteLine("12. Reverse the list"); Console.WriteLine("13. Bubble sort by exchanging data"); Console.WriteLine("14. Bubble sort by exchanging links"); Console.WriteLine("15. MergeSort"); Console.WriteLine("16. Insert Cycle"); Console.WriteLine("17. Detect Cycle"); Console.WriteLine("18. Remove Cycle"); Console.WriteLine("19. Quit\n"); Console.Write("Enter your choice : "); choice = Convert.ToInt32(Console.ReadLine()); if (choice == 19) { break; } switch (choice) { case 1: list.DisplayList(); break; case 2: list.CountNodes(); break; case 3: Console.Write("Enter the element to be searched : "); data = Convert.ToInt32(Console.ReadLine()); list.Search(data); break; case 4: Console.Write("Enter the element to be inserted : "); data = Convert.ToInt32(Console.ReadLine()); list.InsertInBeginning(data); break; case 5: Console.Write("Enter the element to be inserted : "); data = Convert.ToInt32(Console.ReadLine()); list.InsertAtEnd(data); break; case 6: Console.Write("Enter the element to be searched : "); data = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter the element after which to insert : "); x = Convert.ToInt32(Console.ReadLine()); list.InsertAfter(data, x); break; case 7: Console.Write("Enter the element to be searched : "); data = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter the element before which to insert : "); x = Convert.ToInt32(Console.ReadLine()); list.InsertBefore(data, x); break; case 8: Console.Write("Enter the element to be searched : "); data = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter the position at which to insert : "); k = Convert.ToInt32(Console.ReadLine()); list.InsertAtPosition(data, k); break; case 9: list.DeleteFirstNode(); break; case 10: list.DeleteLastNode(); break; case 11: Console.Write("Enter the element to be deleted : "); data = Convert.ToInt32(Console.ReadLine()); list.DeleteNode(data); break; case 12: list.ReverseList(); break; case 13: list.BubbleSortExData(); break; case 14: list.BubbleSortExLinks(); break; case 15: list.MergeSort(); break; case 16: Console.Write("Enter the element at which the cycle has to be inserted : "); data = Convert.ToInt32(Console.ReadLine()); list.InsertCycle(data); break; case 17: if (list.HasCycle()) { Console.WriteLine("List has a cycle"); } else { Console.WriteLine("List does not have a cycle"); } break; case 18: list.RemoveCycle(); break; default: Console.WriteLine("Wrong choice"); break; } Console.WriteLine(); } Console.WriteLine("Exiting"); }
static void Main(string[] args) { int choice, data, k, x; SingleLinkedList list = new SingleLinkedList(); list.CreateList(); while (true) { Console.WriteLine("1. Display list"); Console.WriteLine("2. Count nodes in the list"); Console.WriteLine("3. Search node in the list"); Console.WriteLine("4. Insert node in the empty list/Insert at the beggining of the list"); Console.WriteLine("5. Insert at the end of the list"); Console.WriteLine("6. Insert node after a particular node"); Console.WriteLine("7. Insert node before a particular node"); Console.WriteLine("8. Insert node at the particular position"); Console.WriteLine("9. Delete first node"); Console.WriteLine("10. Delete last node"); Console.WriteLine("11. Delete particular node"); Console.WriteLine("12. List reverse"); Console.WriteLine("13. Bubble sort - data changes"); Console.WriteLine("14. Bubble sort - link changes"); Console.WriteLine("15. Merge two sorted list"); Console.WriteLine("16. Merge Sort"); Console.WriteLine("17. Quit"); do { Console.Write("Enter your choice: "); }while (!int.TryParse(Console.ReadLine(), out choice)); if (choice == 17) { break; } switch (choice) { case 1: Console.Clear(); list.DisplayList(); break; case 2: Console.Clear(); list.CountNodes(); break; case 3: Console.Clear(); do { Console.Write("Insert element you want to search: "); }while (!int.TryParse(Console.ReadLine(), out data)); list.Search(data); break; case 4: Console.Clear(); do { Console.Write("Insert node: "); }while (!int.TryParse(Console.ReadLine(), out data)); list.InsertInBeginning(data); break; case 5: Console.Clear(); do { Console.Write("Insert node: "); }while (!int.TryParse(Console.ReadLine(), out data)); list.InsertAtEnd(data); break; case 6: Console.Clear(); do { Console.Write("Insert node: "); }while (!int.TryParse(Console.ReadLine(), out data)); do { Console.Write("Insert particular node: "); }while (!int.TryParse(Console.ReadLine(), out x)); list.InsertAfter(data, x); break; case 7: Console.Clear(); do { Console.Write("Insert node: "); }while (!int.TryParse(Console.ReadLine(), out data)); do { Console.Write("Insert particular node: "); }while (!int.TryParse(Console.ReadLine(), out x)); list.InsertBefore(data, x); break; case 8: Console.Clear(); do { Console.Write("Insert node: "); }while (!int.TryParse(Console.ReadLine(), out data)); do { Console.Write("Insert position you want to insert on: "); }while (!int.TryParse(Console.ReadLine(), out k)); list.InsertAtPosition(data, k); break; case 9: Console.Clear(); list.DeleteFirstNode(); break; case 10: Console.Clear(); list.DeleteLastNode(); break; case 11: Console.Clear(); do { Console.Write("Insert the node you want to delete: "); }while(!int.TryParse(Console.ReadLine(), out data)); list.DeleteNode(data); break; case 12: Console.Clear(); list.ReverseList(); break; case 13: Console.Clear(); list.BubbleSortExData(); break; case 14: Console.Clear(); list.BubbleSortExLinks(); break; case 15: list.MergeList(list); break; case 16: Console.Clear(); list.MergeSort(); break; default: Console.Clear(); Console.WriteLine("Wrong choice! Try again!"); break; } Console.WriteLine(); } Console.WriteLine("Exit"); }
static void Main(string[] args) { int choice, data, k, x; SingleLinkedList list = new SingleLinkedList(); list.CreateList(); while (true) { Console.WriteLine("1. Display list"); Console.WriteLine("2. Count the number of nodes"); Console.WriteLine("3. Search for an element"); Console.WriteLine("4. Insert in empty list / Insert in beginning of the list"); Console.WriteLine("5. Inset a node at the end of the list"); Console.WriteLine("6. Insert a node after a specified node"); Console.WriteLine("7. Insert a node before a specified node"); Console.WriteLine("8. Insert a node at a given position"); Console.WriteLine("9. Delete first node"); Console.WriteLine("10. Delete last node"); Console.WriteLine("11. Delete any node"); Console.WriteLine("12. Reverse the list"); Console.WriteLine("13. Bubble sort by exchanging data"); Console.WriteLine("14. Bubble sort by exchanging links"); Console.WriteLine("15. Merge a new list with the current list"); Console.WriteLine("16. Sort the list using Merge Sort"); Console.WriteLine("17. Insert a cycle"); Console.WriteLine("18. Detect a cycle"); Console.WriteLine("19. Remove a cycle"); Console.WriteLine("Enter your choice: "); choice = Convert.ToInt32(Console.ReadLine()); if (choice == 1) { break; } switch (choice) { case 1: // Display List list.DisplayList(); break; case 2: // Count Nodes list.CountNodes(); break; case 3: // Search by data Console.Write("Enter the element to be searched: "); data = Convert.ToInt32(Console.ReadLine()); list.Search(data); break; case 4: // Insert new node at beginning Console.Write("Enter the element to be inserted: "); data = Convert.ToInt32(Console.ReadLine()); list.InsertInBeginning(data); break; case 5: // Insert new node at end Console.Write("Enter the element to be inserted: "); data = Convert.ToInt32(Console.ReadLine()); list.InsertAtEnd(data); break; case 6: // Insert new node after a specific node Console.Write("Enter the element to be inserted: "); data = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter the element after which to insert: "); choice = Convert.ToInt32(Console.ReadLine()); list.InsertAfter(data, choice); break; case 7: // Insert new node before a speecific node Console.Write("Enter the element to be inserted: "); data = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter the element before which to insert: "); choice = Convert.ToInt32(Console.ReadLine()); list.InsertBefore(data, choice); break; case 8: // Insert a new node at a specific node position Console.Write("Enter the element to be inserted: "); data = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter the element at which to insert: "); choice = Convert.ToInt32(Console.ReadLine()); list.InsertAtPosition(data, choice); break; case 9: // Delete first node list.DeleteFirstNode(); break; case 10: // Delete last node list.DeleteLastNode(); break; case 11: // Delete a node by its data/name Console.Write("Enter the element(data) to be inserted: "); data = Convert.ToInt32(Console.ReadLine()); list.DeleteNode(data); break; case 12: // Reverse List list.ReverseList(); break; case 13: // Bubble sort by exchanging data list.BubbleSortExData(); break; case 14: // Bubble sort by exchanging links list.BubbleSortExLinks(); break; case 15: // Merge a new list with the current list Demo demo = new Demo(); demo.MergeListTest(list); break; case 16: // Sort the list using Merge Sort list.MergeSort(); break; case 17: // Create a Cycle Console.Write("Enter element to start cycle at: "); x = Convert.ToInt32(Console.ReadLine()); list.InsertCycle(x); break; case 18: // Detect a Cycle list.HasCycle(); break; case 19: // Remove a Cycle list.RemoveCycle(); break; } } }