DSAverse
Basics & Data Structures
Loading Data Structures...
Array Access
12
05
18
23
317
49
5array[0..5]indexed access
Array
Stack
Queue
Initializing Sorting Algorithms...
Sorting
Trees
Graphs
Preparing interactive visualizations...
Basics & Data Structures
Loading Data Structures...
Array Access
Array
Stack
Queue
A dynamic queue with front and rear pointers. True O(1) dequeue — no element shifting needed.
FRONT = where elements leave →→→ REAR = where elements arrive
Color Legend
Use Enqueue, Dequeue, or Peek to begin visualization.
Points to the first node — where dequeue removes from
Points to the last node — where enqueue adds to
When the queue is empty — single node makes both equal
A linked list queue uses two pointers — what are they called?
class Node:
def __init__(self, value):
self.value = value
self.next = None
class QueueLinkedList:
def __init__(self):
self.front = None # Dequeue end
self.rear = None # Enqueue end
self.size = 0
def enqueue(self, value):
new_node = Node(value)
if self.rear is None:
# Empty queue: front and rear both point to new node
self.front = self.rear = new_node
else:
# Link new node to current rear, update rear
self.rear.next = new_node
self.rear = new_node
self.size += 1
return value
def dequeue(self):
if self.front is None:
raise Exception("Queue Underflow")
value = self.front.value
self.front = self.front.next
if self.front is None: # Queue became empty
self.rear = None
self.size -= 1
return value
def peek(self):
if self.front is None:
raise Exception("Queue is Empty")
return self.front.value
def is_empty(self):
return self.front is None