Whatever-First Search
Understand the different techniques used to implement breadth-first search and depth-first search algorithms.
We'll cover the following
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 reachability. Given a graph and a vertex in , the reachability question asks which vertices are reachable from ; that is, for which vertices is there a path from to ? 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 are precisely the vertices in the same component as .
Perhaps the most natural reachability algorithm—at least for people like us who are used to thinking recursively—is depth-first search. 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