class CircularQueue {
private int maxSize;
private int front;
private int rear;
private int[] queue;
public CircularQueue(int size) {
maxSize = size + 1; // One extra space to differentiate between front and rear.
queue = new int[maxSize];
front = rear = 0;
}
public boolean isEmpty() {
return front == rear;
}
public boolean isFull() {
return (rear + 1) % maxSize == front;
}
public void enqueue(int item) {
if (isFull()) {
System.out.println("Queue is full. Cannot enqueue.");
} else {
queue[rear] = item;
rear = (rear + 1) % maxSize;
System.out.println(item + " enqueued to the queue");
}
}
public int dequeue() {
if (isEmpty()) {
System.out.println("Queue is empty. Cannot dequeue.");
return -1; // Return a special value to indicate an empty queue.
} else {
int item = queue[front];
front = (front + 1) % maxSize;
System.out.println(item + " dequeued from the queue");
return item;
}
}
public void display() {
System.out.print("Queue: ");
int i = front;
while (i != rear) {
System.out.print(queue[i] + " ");
i = (i + 1) % maxSize;
}
System.out.println();
}
public static void main(String[] args) {
CircularQueue queue = new CircularQueue(5);
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
queue.enqueue(4);
queue.display();
queue.dequeue();
queue.display();
queue.enqueue(5);
queue.enqueue(6);
queue.display();
queue.dequeue();
queue.dequeue();
queue.dequeue();
queue.display();
}
}
Top comments (0)