//GenericLinkedListQueue import java.util.LinkedList; public class GenericLinkedListQueue<T> { private LinkedList<T> queueList; public GenericLinkedListQueue() { queueList = new LinkedList<>(); } public void enqueue(T value) { queueList.addLast(value); } public T dequeue() { if (isEmpty()) { System.out.println("Queue is empty."); return null; } else { return queueList.removeFirst(); } } public T peek() { if (isEmpty()) { System.out.println("Queue is empty."); return null; } else { return queueList.getFirst(); } } public boolean isEmpty() { return queueList.isEmpty(); } public int size() { return queueList.size(); } } //Main public class Main { public static void main(String[] args) { // Queue for Integers GenericLinkedListQueue<Integer> intQueue = new GenericLinkedListQueue<>(); intQueue.enqueue(1); intQueue.enqueue(2); System.out.println(intQueue.dequeue()); // Output: 1 System.out.println(intQueue.peek()); // Output: 2 // Queue for Doubles GenericLinkedListQueue<Double> doubleQueue = new GenericLinkedListQueue<>(); doubleQueue.enqueue(1.1); doubleQueue.enqueue(2.2); System.out.println(doubleQueue.dequeue()); // Output: 1.1 System.out.println(doubleQueue.peek()); // Output: 2.2 // Queue for Strings GenericLinkedListQueue<String> stringQueue = new GenericLinkedListQueue<>(); stringQueue.enqueue("Hello"); stringQueue.enqueue("World"); System.out.println(stringQueue.dequeue()); // Output: Hello System.out.println(stringQueue.peek()); // Output: World } }