Stacks vs Queues: When to Use Which
You'll learn to
- -Compare stacks and queues side by side on ordering, use cases, and complexity
- -Choose the correct structure given a problem description
With both structures now built from scratch, this short chapter exists purely to crystallize the distinction between them before moving on - no new code beyond one quick reference to Python's standard library.
A Quick Mental Test
- -A browser-style back button, undo history, and matching parentheses all want a stack - the most recent action matters first.
- -A printer job queue, a customer support ticket line, and processing requests fairly in arrival order all want a queue.
- -Tracking in-progress function calls during recursion is a stack, whether or not it is managed by hand - this connects directly to the recursion module later in this tier.
- -Task scheduling and breadth-first search, covered in later tiers, both want a queue for the same fairness reason.
The Practical Real-World Answer: collections.deque
Python's standard library already ships a structure that behaves correctly as either one: collections.deque, a doubly-linked list under the hood offering O(1) append and pop from BOTH ends. Building a Stack and a Queue from scratch in this module was not busywork - understanding why list.pop(0) is slow, and how a circular buffer avoids that cost, is exactly the reasoning that lets you evaluate any structure's complexity, including ones a language or library hands you ready-made, or the constrained sandbox environment in the Forge Algorithm Lab where a full standard library is not always available.
Which ordering does a stack follow?