import java.util.*; class GenQueueAL<T>{ ArrayList<T> queue; GenQueueAL(ArrayList<T> queue){ this.queue=queue; } void enqueue(T a){ queue.add(a); } T dequeue(){ T i= null; try{ i= queue.remove(0); }catch(Exception e){ i= null; } return i; } void display(){ for(T i:queue){ System.out.println(i); } } public static void main(String args[]){ Scanner sc= new Scanner(System.in); ArrayList<Integer> a= new ArrayList<>(); GenQueueAL<Integer> q1= new GenQueueAL<Integer>(a); int op=0; Integer ele; System.out.println("1.Enqueue\n2.Dequeue\n3.Display\n4.Exit"); while(op!=4){ System.out.print("Enter option: "); op=sc.nextInt(); switch(op){ case 1: System.out.println("enter element to enqueue: "); ele = sc.nextInt(); q1.enqueue(ele); break; case 2: ele=q1.dequeue(); if(ele==null){ System.out.println("Queue is empty"); } else{ System.out.println("Dequeued element:"+ele); } break; case 3: q1.display(); break; case 4: break; default : System.out.println("Enter valid option"); } } } }