If you have already taken a course in algorithms, why read Grokking Algorithms (manning.com/bhargava)?
If you were learning graph algorithms, which approach would you prefer:
-
Imagine you have to take public transit from your home to your office. How do you figure out the fastest route? Use graph algorithms! OR
-
We can choose between two standard ways to represent a graph G = (V, E): as a collection of adjacency lists or as an adjacency matrix. Either way applies to both directed and undirected graphs.
I prefer the first way: lead with lots of examples, and clear writing. The second way is an excerpt from "Introduction to Algorithms"...that's how they start their section on graph algorithms.