For each of the following two examples, which traversal (depth-first or breadth-first) is better for discovering if a path exists between the two nodes? Explain why.
Path from A to F.
Path from A to G.
Challenge 2: Recursive DFS
In this chapter, you went over an iterative implementation of depth-first search. Now write a recursive implementation.
Challenge 3: Detect a cycle
Add a method to Graph to detect if a directed graph has a cycle.
Solutions
Solution to Challenge 1
Path from A to F: Use depth-first, because the path you are looking for is deeper in the graph.
Path from A to G: Use breadth-first, because the path you are looking for is near the root.
Solution to Challenge 2
In the depth first search chapter you learned how to implement the algorithm iteratively. Let’s take a look at how you would implement it recursively.
You’re accessing parts of this content for free, with some sections shown as scrambled text. Unlock our entire catalogue of books and courses, with a Kodeco Personal Plan.