package me.ramswaroop; import me.ramswaroop.common.*; import java.util.Scanner; import static java.lang.System.out; public class Main { public static void main(String[] args) { int k1, k2; Scanner in = new Scanner(System.in); Stack<Integer> stack = new LinkedStack<>(); Queue<Integer> queue = new LinkedQueue<>(); LinkedList<Integer> singleLinkedList = new SingleLinkedList<>(); LinkedList<Integer> doubleLinkedList = new DoubleLinkedList<>(); LinkedList<Integer> circularSingleLinkedList = new CircularSingleLinkedList<>(); chooseModule: while (true) { out.println("Choose module:"); out.println("=============="); out.println("1. Stack"); out.println("2. Queue"); out.println("3. SingleLinkedList"); out.println("4. DoubleLinkedList"); out.println("5. CircularSingleLinkedList"); out.println("6. CircularDoubleLinkedList"); out.println("7. Exit"); k1 = Integer.parseInt(in.nextLine()); switch (k1) { case 1: while (true) { out.println("Select operation:"); out.println("================="); out.println("1. Push"); out.println("2. Pop"); out.println("3. Peek"); out.println("4. Print"); out.println("5. Exit module"); k2 = Integer.parseInt(in.nextLine()); switch (k2) { case 1: out.println("Enter value:"); int input = Integer.parseInt(in.nextLine()); stack.push(input); stack.print(); break; case 2: out.println("Removed element: " + stack.pop()); stack.print(); break; case 3: out.println("Front element: " + stack.peek()); stack.print(); break; case 4: stack.print(); break; case 5: continue chooseModule; default: out.println("Wrong choice!"); } } case 2: while (true) { out.println("Select operation:"); out.println("================="); out.println("1. Add"); out.println("2. Remove"); out.println("3. Front element"); out.println("4. Print"); out.println("5. Exit module"); k2 = Integer.parseInt(in.nextLine()); switch (k2) { case 1: out.println("Enter value:"); int input = Integer.parseInt(in.nextLine()); queue.add(input); queue.print(); break; case 2: out.println("Removed element: " + queue.remove()); queue.print(); break; case 3: out.println("Front element: " + queue.element()); queue.print(); break; case 4: queue.print(); break; case 5: continue chooseModule; default: out.println("Wrong choice!"); } } case 3: while (true) { out.println("Select operation:"); out.println("================="); out.println("1. Add"); out.println("2. Add at index"); out.println("3. Remove"); out.println("4. Remove at index"); out.println("5. Remove item"); out.println("6. Edit item"); out.println("7. Delete LinkedList"); out.println("8. Print"); out.println("9. Exit module"); k2 = Integer.parseInt(in.nextLine()); int item, index; switch (k2) { case 1: out.println("Enter value:"); item = Integer.parseInt(in.nextLine()); singleLinkedList.add(item); singleLinkedList.printList(); break; case 2: out.println("Enter value:"); item = Integer.parseInt(in.nextLine()); out.println("Enter index:"); index = Integer.parseInt(in.nextLine()); singleLinkedList.add(index, item); singleLinkedList.printList(); break; case 3: out.println("Removed element: " + singleLinkedList.remove()); singleLinkedList.printList(); break; case 4: out.println("Enter index:"); index = Integer.parseInt(in.nextLine()); out.println("Removed element: " + singleLinkedList.remove(index)); singleLinkedList.printList(); break; case 5: out.println("Enter value:"); item = Integer.parseInt(in.nextLine()); out.println("Removed: " + singleLinkedList.removeItem(item)); singleLinkedList.printList(); break; case 6: out.println("Enter index to edit:"); index = Integer.parseInt(in.nextLine()); out.println("Enter new value:"); item = Integer.parseInt(in.nextLine()); singleLinkedList.set(index, item); singleLinkedList.printList(); break; case 7: singleLinkedList.clear(); out.println("LinkedList deleted."); singleLinkedList.printList(); break; case 8: singleLinkedList.printList(); break; case 9: continue chooseModule; default: out.println("Wrong choice!"); } } case 4: while (true) { out.println("Select operation:"); out.println("================="); out.println("1. Add"); out.println("2. Add at index"); out.println("3. Remove"); out.println("4. Remove at index"); out.println("5. Remove item"); out.println("6. Edit item"); out.println("7. Delete LinkedList"); out.println("8. Print"); out.println("9. Exit module"); k2 = Integer.parseInt(in.nextLine()); int item, index; switch (k2) { case 1: out.println("Enter value:"); item = Integer.parseInt(in.nextLine()); doubleLinkedList.add(item); doubleLinkedList.printList(); break; case 2: out.println("Enter value:"); item = Integer.parseInt(in.nextLine()); out.println("Enter index:"); index = Integer.parseInt(in.nextLine()); doubleLinkedList.add(index, item); doubleLinkedList.printList(); break; case 3: out.println("Removed element: " + doubleLinkedList.remove()); doubleLinkedList.printList(); break; case 4: out.println("Enter index:"); index = Integer.parseInt(in.nextLine()); out.println("Removed element: " + doubleLinkedList.remove(index)); doubleLinkedList.printList(); break; case 5: out.println("Enter value:"); item = Integer.parseInt(in.nextLine()); out.println("Removed: " + doubleLinkedList.removeItem(item)); doubleLinkedList.printList(); break; case 6: out.println("Enter index to edit:"); index = Integer.parseInt(in.nextLine()); out.println("Enter new value:"); item = Integer.parseInt(in.nextLine()); doubleLinkedList.set(index, item); doubleLinkedList.printList(); break; case 7: doubleLinkedList.clear(); out.println("LinkedList deleted."); doubleLinkedList.printList(); break; case 8: doubleLinkedList.printList(); break; case 9: continue chooseModule; default: out.println("Wrong choice!"); } } case 5: while (true) { out.println("Select operation:"); out.println("================="); out.println("1. Add"); out.println("2. Add at index"); out.println("3. Remove"); out.println("4. Remove at index"); out.println("5. Remove item"); out.println("6. Edit item"); out.println("7. Delete LinkedList"); out.println("8. Print"); out.println("9. Exit module"); k2 = Integer.parseInt(in.nextLine()); int item, index; switch (k2) { case 1: out.println("Enter value:"); item = Integer.parseInt(in.nextLine()); circularSingleLinkedList.add(item); circularSingleLinkedList.printList(); break; case 2: out.println("Enter value:"); item = Integer.parseInt(in.nextLine()); out.println("Enter index:"); index = Integer.parseInt(in.nextLine()); circularSingleLinkedList.add(index, item); circularSingleLinkedList.printList(); break; case 3: out.println("Removed element: " + circularSingleLinkedList.remove()); circularSingleLinkedList.printList(); break; case 4: out.println("Enter index:"); index = Integer.parseInt(in.nextLine()); out.println("Removed element: " + circularSingleLinkedList.remove(index)); circularSingleLinkedList.printList(); break; case 5: out.println("Enter value:"); item = Integer.parseInt(in.nextLine()); out.println("Removed: " + circularSingleLinkedList.removeItem(item)); circularSingleLinkedList.printList(); break; case 6: out.println("Enter index to edit:"); index = Integer.parseInt(in.nextLine()); out.println("Enter new value:"); item = Integer.parseInt(in.nextLine()); circularSingleLinkedList.set(index, item); circularSingleLinkedList.printList(); break; case 7: circularSingleLinkedList.clear(); out.println("LinkedList deleted."); circularSingleLinkedList.printList(); break; case 8: circularSingleLinkedList.printList(); break; case 9: continue chooseModule; default: out.println("Wrong choice!"); } } case 6: out.println("Yet to be developed!"); break; case 7: out.println("Exiting..."); System.exit(0); default: out.println("Wrong choice!"); } } } }