Write a python program to implement a circular queue.
Added 2 weeks ago
Active
Viewed 33
Ans

class CircularQueue:
    def __init__(self, size):
        self.size = size
        self.queue = [None] * size  # Initialize the queue with None
        self.front = -1
        self.rear = -1

    # Enqueue operation
    def enqueue(self, data):
        # Check if the queue is full
        if ((self.rear + 1) % self.size == self.front):
            print("Queue is Full!")
            return

        # If queue is empty
        if self.front == -1:
            self.front = 0
            self.rear = 0
            self.queue[self.rear] = data
        else:
            self.rear = (self.rear + 1) % self.size
            self.queue[self.rear] = data
        print(f"Inserted: {data}")

    # Dequeue operation
    def dequeue(self):
        # Check if the queue is empty
        if self.front == -1:
            print("Queue is Empty!")
            return

        data = self.queue[self.front]
        # Only one element was present
        if self.front == self.rear:
            self.front = -1
            self.rear = -1
        else:
            self.front = (self.front + 1) % self.size
        print(f"Deleted: {data}")

    # Display the queue
    def display(self):
        if self.front == -1:
            print("Queue is Empty!")
            return

        print("Queue elements:")
        i = self.front
        while True:
            print(self.queue[i], end=" ")
            if i == self.rear:
                break
            i = (i + 1) % self.size
        print()

# Example usage
cq = CircularQueue(5)

cq.enqueue(10)
cq.enqueue(20)
cq.enqueue(30)
cq.enqueue(40)
cq.enqueue(50)  # This should show "Queue is Full!"

cq.display()

cq.dequeue()
cq.dequeue()

cq.display()

cq.enqueue(60)
cq.enqueue(70)

cq.display()


Sample Output:
Inserted: 10
Inserted: 20
Inserted: 30
Inserted: 40
Queue is Full!
Queue elements:
10 20 30 40 
Deleted: 10
Deleted: 20
Queue elements:
30 40 
Inserted: 60
Inserted: 70
Queue elements:
30 40 60 70 


Related Questions