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