Untitled Note
By: Anonymous10/31/20236 views Public Note
class Node {
int data;
Node next;
public Node(int data) {
this.data = data;
this.next = null;
}
}
class Queue {
private Node front;
private Node rear;
public Queue() {
front = null;
rear = null;
}
public boolean isEmpty() {
return front == null;
}
public void enqueue(int data) {
Node newNode = new Node(data);
if (isEmpty()) {
front = newNode;
rear = newNode;
} else {
rear.next = newNode;
rear = newNode;
}
System.out.println("Enqueued: " data);
}
public int dequeue() {
if (isEmpty()) {
System.out.println("Queue is empty. Cannot dequeue.");
return -1; // Return a sentinel value to indicate an error
}
int data = front.data;
front = front.next;
if (front == null) {
rear = null; // If the last element was dequeued, update rear
}
System.out.println("Dequeued: " data);
return data;
}
public int front() {
if (isEmpty()) {
System.out.println("Queue is empty. No front element.");
return -1; // Return a sentinel value to indicate an error
}
return front.data;
}
public int size() {
int count = 0;
Node current = front;
while (current != null) {
count ;
current = current.next;
}
return count;
}
public static void main(String[] args) {
Queue queue = new Queue();
queue.enqueue(10);
queue.enqueue(20);
queue.enqueue(30);
System.out.println("Queue size: " queue.size());
System.out.println("Front element: " queue.front());
queue.dequeue();
queue.dequeue();
System.out.println("Queue size after dequeues:” queue.size());
}
}