Questions: Strongly Connected Components: Kosaraju and Tarjan Algorithms

5 questions to test your understanding

Score: 0 / 5
Question 1 Multiple Choice

In Kosaraju's algorithm, why are vertices processed in *decreasing* order of their first-pass finish times during the second DFS on the transpose graph?

ATo ensure vertices with more edges are processed first, improving cache efficiency
BTo guarantee each DFS tree in the second pass explores exactly one SCC, starting from a source SCC in the component DAG
CTo avoid revisiting vertices already assigned to an SCC during the first pass
DTo replicate the topological ordering of the original graph within the transpose
Question 2 Multiple Choice

In Tarjan's algorithm, a vertex v is identified as the root of an SCC when its low-link value equals its own discovery index. What does this condition mean?

Av has no outgoing edges remaining in the DFS tree
Bv was the very first vertex discovered in the entire DFS traversal
CNo vertex in v's DFS subtree can reach an ancestor above v via a back edge — the SCC is 'closed' at v
Dv has the maximum discovery index among all vertices currently on the stack
Question 3 True / False

If a directed graph has exactly one strongly connected component, then every vertex can reach every other vertex via directed paths.

TTrue
FFalse
Question 4 True / False

Reversing most edges in a strongly connected graph produces a graph that is no longer strongly connected.

TTrue
FFalse
Question 5 Short Answer

Why does Kosaraju's algorithm use the *transpose* graph (reversed edges) in its second pass rather than running DFS on the original graph again?

Think about your answer, then reveal below.