Queue Data Structure Visualization
A queue is a linear data structure that follows the First In, First Out (FIFO) principle. Elements are added at the rear and removed from the front of the queue.

Key Operations:

  • Enqueue: Add an element to the rear of the queue
  • Dequeue: Remove the front element from the queue

Common Errors:

  • Queue Overflow: Occurs when trying to enqueue to a full queue
  • Queue Underflow: Occurs when trying to dequeue from an empty queue

Applications:

  • Task scheduling (CPU, printer queues)
  • Breadth-first search (BFS) algorithm
  • Message queues in distributed systems
  • Customer service call centers

Queue Implementation:

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None


class Queue:
    def __init__(self, max_size):
        self.front = None
        self.rear = None
        self.max_size = max_size
        self.size = 0

    def enqueue(self, data):
        if self.size >= self.max_size:
            print("Queue Overflow")
            return
        new_node = Node(data)
        if self.rear is None:
            self.front = new_node
            self.rear = new_node
        else:
            self.rear.next = new_node
            self.rear = new_node
        self.size += 1
        return data

    def dequeue(self):
        if self.front is None:
            print("Queue Underflow")
            return
        data = self.front.data
        self.front = self.front.next
        if self.front is None:
            self.rear = None
        self.size -= 1
        return data

    def peek(self):
        if self.front is None:
            return None
        return self.front.data

    def is_empty(self):
        return self.front is None

    def is_full(self):
        return self.size >= self.max_size

Queue Visualization

Running

Queue Contents

Size: 0/5
Queue is empty
Dequeue (Exit) ←→ Enqueue (Enter)