Algorithmsqueue usage

Queue Usage — FIFO Thinking in Problems

TT
Testlaa Team
May 14, 20261 min read

Whenever fairness is “oldest waiting first”, reach for a queue: scheduling, buffering, level-order traversal.

Try this in Python

from collections import deque


def bfs_levels(tree: dict[str, list[str]], root: str) -> list[list[str]]:
    out: list[list[str]] = []
    dq: deque[str] = deque([root])
    while dq:
        level = list(dq)
        dq.clear()
        out.append(level)
        for n in level:
            dq.extend(tree.get(n, []))
    return out


print(bfs_levels({"A": ["B", "C"], "B": ["D"], "C": [], "D": []}, "A"))

Key takeaways

  • Process the frontier generation by generation.
  • Queue = current frontier container in classic BFS.
  • For weighted shortest path you need more than a plain queue.

Tags:

Stacks & queuesPythonStudents