Skip to content

Queue & Deque Implementations🔗

A Queue follows First-In First-Out (FIFO), while a Deque (Double-Ended Queue) allows insertion and removal from both ends.

Basic Operation

Queue Deque
enqueue(x) push_front(x), push_back(x)
dequeue() pop_front(), pop_back()
peek() front(), back()
isEmpty() empty()

Python🔗

  • Queue & Deque : collections.deque
from collections import deque
q = deque()
q.append(x)      # enqueue
q.popleft()      # dequeue

dq = deque()
dq.appendleft(x) # push front
dq.append(x)     # push back
dq.pop()         # pop back
dq.popleft()     # pop front

C++ STL🔗

#include <queue>
queue<int> q;
q.push(x);       // enqueue
q.pop();         // dequeue

#include <deque>
deque<int> dq;
dq.push_front(x);
dq.push_back(x);
dq.pop_front();
dq.pop_back();

Applications🔗

  • Queues : OS Scheduling, BFS traversal, Buffers
  • Deques: Sliding Window Problems, Palindrome Checks, Task Scheduler

Problems🔗

  • Implement Queue Using Stacks (232) : Simulate a FIFO queue using two stacks
  • Implement Stack Using Queues : Simulate a LIFO stack using 2 queues
  • Circular Queue (622) : Implementation
  • Double-Ended Queue : Implementation
  • Reverse First K Elements of a Queue
  • Task Scheduler
  • Design Hit Counter
  • Rotten Oranges
  • LRU Cache