### DIRECTED GRAPHS STUDY GUIDE

Using directed graphs vs. undirected graphs. nbsp; Know when to use each. This should be fairly natural. For example, you'd use an undirected graph to represent friend connections between Facebook users, and a directed graph to represent following connections on Twitter.

BFS and DFS are directed graph algorithms.   Many canonical unweighted digraph problems (e.g. shortest paths and reachability) can be solved using code that is effectively identical to code for solving problems on unweighted graphs.

Importan digraph graph traversals.

• Depth-first search (including preorder, postorder, and reverse postorder).

Important digraph problems.

• Topological sort.
• What is a topological sort?
• Is it unique?
• What are the conditions under which a digraph has a topological sort?
• How do you compute a topological sort?
• What is the running time of that algorithm (using adjacency lists)?

• Strongly-connected components.
• What is a strongly connected component (sometimes called a strong component)?
• How does the Kosaraju-Sharir algorithm work?
• What does the first step of Kosaraju-Sharir provide? An ordering of the vertices that allows us to find the strong components in the second step.
• What does the second step of Kosaraju-Sharir do? Finds all the strong components using the ordering provided by the first step.
• What are the steps? 1. Run DFS on GR to compute reverse postorder of GR. 2. Start V depth-first-searches (one for each node) in the order given by first step.
• What is the running time if we use adjacency lists?

### Recommended Problems

#### C level

1. Fall 2012 Final, #3
2. Spring 12 final, #3a, #3b
3. Spring 14 Final, #2b

#### B level

1. Spring 14 Final, #2a
2. Using the previous problem, provide a topological sort that is different than the reverse postorder. If no such sort exists, explain why. Answers
3. Textbook: 4.2.10, 4.2.20

#### A level

1. Spring 2012 Final, #12
2. 4.2.19, 4.2.22
3. 4.2.27
4. 4.2.40

#### Just for fun

1. Write code similar to (or copy) the webcrawler shown in lecture.