Back to DSA Topics

Queues

Queues follow FIFO (First In First Out) principle. Elements are added at the rear and removed from the front.

Animated Visualization

Step 1 of 5
Front
10
20
30
Rear
Initial queue: [10, 20, 30] - Front: 10, Rear: 30
javascript
← Scroll →
// Queue Implementation using Array
class Queue {
constructor() {
this.items = [];
}
// Add element to rear
enqueue(element) {
this.items.push(element);
}
// Remove element from front
dequeue() {
if (this.isEmpty()) {
return "Queue is empty";
}
return this.items.shift();
}
// View front element
front() {
if (this.isEmpty()) {
return "Queue is empty";
}
return this.items[0];
}
// Check if queue is empty
isEmpty() {
return this.items.length === 0;
}
// Get queue size
size() {
return this.items.length;
}
// Time Complexity:
// Enqueue: O(1)
// Dequeue: O(n) with array, O(1) with linked list
// Front: O(1)
// Search: O(n)
Swipe horizontally to view full code

Explanation

Queues are linear data structures that follow the FIFO principle. They're used in task scheduling, BFS algorithms, and request handling systems. Enqueue adds to rear, dequeue removes from front.

Operations & Complexity

EnqueueO(1)

Add element to rear

DequeueO(1)

Remove element from front

FrontO(1)

View front element

SearchO(n)

Must traverse queue

Time Complexity

EnqueueO(1)

Add element to rear

DequeueO(1)

Remove element from front

FrontO(1)

View front element

SearchO(n)

Must traverse queue