DEV Community

Aniket pagedar
Aniket pagedar

Posted on

Circular queue

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();
}
Enter fullscreen mode Exit fullscreen mode

}

Top comments (0)