public class LinkedListQueue {
private static class Node {
private int data;
private Node next;
public Node(int data) {
this.data = data;
this.next = null;
}
}
private Node front;
private Node rear;
public LinkedListQueue() {
this.front = null;
this.rear = null;
}
public boolean isEmpty() {
return front == null;
}
public void enqueue(int item) {
Node newNode = new Node(item);
if (isEmpty()) {
front = newNode;
rear = newNode;
} else {
rear.next = newNode;
rear = newNode;
}
}
public int dequeue() {
if (isEmpty()) {
System.out.println("Queue is empty");
return -1;
}
int item = front.data;
front = front.next;
if (front == null) {
rear = null;
}
return item;
}
public int peek() {
if (isEmpty()) {
System.out.println("Queue is empty");
return -1;
}
return front.data;
}
public void display() {
if (isEmpty()) {
System.out.println("Queue is empty");
return;
}
Node current = front;
System.out.print("Queue: ");
while (current != null) {
System.out.print(current.data + " ");
current = current.next;
}
System.out.println();
}
public static void main(String[] args) {
LinkedListQueue queue = new LinkedListQueue();
queue.enqueue(10);
queue.enqueue(20);
queue.enqueue(30);
queue.display();
System.out.println(queue.dequeue());
queue.display();
System.out.println(queue.peek());
queue.display();
}
}