Whatever-First Search

Understand the different techniques used to implement breadth-first search and depth-first search algorithms.

Depth-first search

So far, we have only discussed local operations on graphs; arguably, the most fundamental global question we can ask about graphs is about its reachability. Given a graph GG and a vertex ss in GG, the reachability question asks which vertices are reachable from ss; that is, for which vertices vv is there a path from ss to vv? For now, let’s consider only undirected graphs; we’ll consider directed graphs briefly at the end of this section. For undirected graphs, the vertices reachable from ss are precisely the vertices in the same component as ss.

Perhaps the most natural reachability algorithm—at least for people who are used to thinking recursively—is depth-first search (DFS). This algorithm can be written either recursively or iteratively. It’s exactly the same algorithm either way; the only difference is that we can actually see the “recursion” stack in the non-recursive version.

Create a free account to access the full course.

By signing up, you agree to Educative's Terms of Service and Privacy Policy