Math for coding interviews/Queue vs stack - the one choice that changes everything
BFS vs DFS: The Queue vs Stack Choice
BFS uses a queue (FIFO). It processes nodes in the order they were discovered. This naturally explores all nodes at distance 1 before any at distance 2 - hence "breadth first." DFS uses a stack (LIFO) - either an explicit stack or the function call stack. It dives as deep as possible before backtracking.
See it for yourself
Same graph, two traversal animations. BFS: nodes light up level by level, expanding outward like ripples. DFS: one path highlights down to a dead end, backtracks, another path goes deep.
Queue vs stack - the one choice that changes everything
BFS uses a queue (FIFO). It processes nodes in the order they were discovered. This naturally explores all nodes at distance 1 before any at distance 2 - hence "breadth first." DFS uses a stack (LIFO) - either an explicit stack or the function call stack. It dives as deep as possible before backtracking.
Think of it this way: BFS: finding the nearest coffee shop - check your block first, then neighboring blocks, expanding outward. DFS: exploring a cave system - go as far down one tunnel as possible, then backtrack and try the next tunnel.
For algorithms: BFS finds the shortest path in unweighted graphs. DFS is better for detecting cycles, topological sort, and exhaustive exploration. The right choice depends on what you are looking for.
Real-world analogy
BFS: finding the nearest coffee shop - check your block first, then neighboring blocks, expanding outward. DFS: exploring a cave system - go as far down one tunnel as possible, then backtrack and try the next tunnel.
Why it matters in interviews
BFS finds the shortest path in unweighted graphs. DFS is better for detecting cycles, topological sort, and exhaustive exploration. The right choice depends on what you are looking for.