DSAverse
Initializing Sorting Algorithms...
Sorting Algorithm
Binary Tree
Graph Traversal
Preparing interactive visualizations for optimal learning experience...
Initializing Sorting Algorithms...
Preparing interactive visualizations for optimal learning experience...
Initializing Sorting Algorithms...
Preparing interactive visualizations for optimal learning experience...
Explore how a queue data structure works using array implementation. Watch enqueue, dequeue, and peek operations in action with FIFO (First In, First Out) principle.
Select an operation to begin visualization
Add element to the rear of queue
Remove and return front element
View front element without removing
class QueueArray:
def __init__(self, max_size):
self.array = [None] * max_size # Fixed-size array
self.front = 0 # Index of front element
self.rear = -1 # Index of rear element
self.size = 0 # Current number of elements
self.max_size = max_size # Maximum capacity
def enqueue(self, value):
# Check for queue overflow
if self.size >= self.max_size:
raise Exception("Queue Overflow")
# Add element at rear
self.rear = (self.rear + 1) % self.max_size # Circular increment
self.array[self.rear] = value
self.size += 1
return value
def dequeue(self):
# Check for queue underflow
if self.size <= 0:
raise Exception("Queue Underflow")
# Get front element and move front pointer
value = self.array[self.front]
self.array[self.front] = None # Optional: clear the slot
self.front = (self.front + 1) % self.max_size # Circular increment
self.size -= 1
return value
def peek(self):
# Check if queue is empty
if self.size <= 0:
raise Exception("Queue is Empty")
return self.array[self.front]
def is_empty(self):
return self.size == 0
def is_full(self):
return self.size >= self.max_size
def get_size(self):
return self.size