DSA — Queues
What is a Queue?
A First-In-First-Out (FIFO) data structure.
class Queue:
def __init__(self):
self.items = []
def enqueue(self, item):
self.items.append(item)
def dequeue(self):
if not self.is_empty():
return self.items.pop(0)
def front(self):
if not self.is_empty():
return self.items[0]
def is_empty(self):
return len(self.items) == 0
def size(self):
return len(self.items)
Operations
| Operation | Time Complexity |
|---|---|
| enqueue | O(1) |
| dequeue | O(n) |
| front | O(1) |
| is_empty | O(1) |
Circular Queue
class CircularQueue:
def __init__(self, capacity):
self.queue = [None] * capacity
self.front = 0
self.rear = -1
self.size = 0
self.capacity = capacity
def enqueue(self, item):
if self.size == self.capacity:
return False
self.rear = (self.rear + 1) % self.capacity
self.queue[self.rear] = item
self.size += 1
return True
def dequeue(self):
if self.size == 0:
return None
item = self.queue[self.front]
self.front = (self.front + 1) % self.capacity
self.size -= 1
return item
Mini Practice
- Implement a queue
- Implement a circular queue
- Use queue for BFS
- Implement a priority queue
Up Next
Continue with Deques — double-ended queue.
Related Topics
Frequently Asked Questions about Queues
What is Queues in DSA?
Queues is a fundamental concept in DSA. This lesson explains it step by step with clear examples, making it easy for beginners to understand.
How do I learn Queues?
Start by reading the explanation above, then try the code examples. Practice by modifying the examples and experimenting with different values. Hands-on practice is the best way to learn Queues.
Why is Queues important in DSA?
Queues is essential for DSA development. Understanding this concept will help you write better code and solve real-world problems more effectively.