PYTHON

Implement Efficient Queues and Stacks with Deque

Utilize Python's collections.deque for high-performance queues (FIFO) and stacks (LIFO), crucial for managing tasks or processing data streams.

from collections import deque

# --- As a Queue (FIFO: First-In, First-Out) ---
my_queue = deque()

# Add elements to the right (enqueue)
my_queue.append('Task A')
my_queue.append('Task B')
my_queue.append('Task C')
# print(f"Queue after appending: {my_queue}") # deque(['Task A', 'Task B', 'Task C'])

# Remove elements from the left (dequeue)
next_task = my_queue.popleft()
# print(f"Processed task: {next_task}") # Task A
# print(f"Queue after popleft: {my_queue}") # deque(['Task B', 'Task C'])


# --- As a Stack (LIFO: Last-In, First-Out) ---
my_stack = deque()

# Add elements to the right (push)
my_stack.append('Page 1')
my_stack.append('Page 2')
my_stack.append('Page 3')
# print(f"Stack after appending: {my_stack}") # deque(['Page 1', 'Page 2', 'Page 3'])

# Remove elements from the right (pop)
current_page = my_stack.pop()
# print(f"Current page: {current_page}") # Page 3
# print(f"Stack after pop: {my_stack}") # deque(['Page 1', 'Page 2'])
How it works: collections.deque (double-ended queue) is a list-like container with fast appends and pops from either end. This makes it ideal for implementing efficient queues (FIFO - First-In, First-Out) using append() and popleft(), and stacks (LIFO - Last-In, First-Out) using append() and pop(). Unlike lists, deque offers O(1) performance for these operations.

Need help integrating this into your project?

Our team of expert developers can help you build your custom application from scratch.

Hire DigitalCodeLabs