A Queue is a linear data structure that follows the First In First Out (FIFO) principle, where the first element added is the first to be removed.
class Queue:
def __init__(self, capacity):
self.queue = [None] * capacity
self.front = 0
self.rear = -1
self.capacity = capacity
self.size = 0
def is_empty(self):
return self.size == 0
def is_full(self):
return self.size == self.capacity
def enqueue(self, data):
if self.is_full():
print("Queue Overflow")
return
self.rear = (self.rear + 1) % self.capacity
self.queue[self.rear] = data
self.size += 1
def dequeue(self):
if self.is_empty():
print("Queue Underflow")
return None
data = self.queue[self.front]
self.front = (self.front + 1) % self.capacity
self.size -= 1
return data
def peek(self):
if self.is_empty():
return None
return self.queue[self.front]
# Usage example:
q = Queue(5)
q.enqueue(10)
q.enqueue(20)
q.enqueue(30)
print("Front element:", q.peek())
print("Dequeued:", q.dequeue())
print("Front element after dequeue:", q.peek())