click to begin demo - sjtuxiaojuan/algo16/slides/6demo... · 2016. 10. 13. · 4.2 kosaraju-sharir...
TRANSCRIPT
Algorithms, 4th Edition ∙ Robert Sedgewick and Kevin Wayne ∙ Copyright © 2002–2012 ∙ September 10, 2014 11:22:46 AM
4.2 Kosaraju-Sharir Algorithm
click to begin demo
2
Phase 1. Compute reverse postorder in GR.
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
10
Kosaraju-Sharir
digraph G
1
4
9
2
5
3
0
1211
10
8 76 8 76
3
‣ DFS in reverse graph
‣ DFS in original graph
4
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
Kosaraju-Sharir
digraph G
1
4
9
2
5
3
0
1211
10
8 76 8 76
5
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
9
2
5
3
0
1211
10
1
8 76
Kosaraju-Sharir
reverse digraph GR
0
1
2
3
4
5
6
7
8
9
10
11
12
marked[v]v
–
–
–
–
–
–
–
–
–
–
–
–
–
6
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
9
2
5
3
0
1211
10
1
8 76
Kosaraju-Sharir
visit 0
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
F
F
F
F
F
F
F
F
F
F
F
marked[v]v
7
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
9
2
5
3
0
1211
10
1
8 76
Kosaraju-Sharir
visit 6
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
F
F
F
F
T
F
F
F
F
F
F
marked[v]v
8
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
9
2
5
3
0
1211
10
1
8 76
Kosaraju-Sharir
visit 8
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
F
F
F
F
T
F
T
F
F
F
F
marked[v]v
9
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
9
2
5
3
0
1211
10
1
8 76
Kosaraju-Sharir
8 done
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
F
F
F
F
T
F
T
F
F
F
F
marked[v]v
8
6
10
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
9
2
5
3
0
1211
10
1
7
Kosaraju-Sharir
visit 6
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
F
F
F
F
T
F
T
F
F
F
F
6
marked[v]v
8
11
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
9
2
5
3
0
1211
10
1
7
Kosaraju-Sharir
visit 7
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
F
F
F
F
T
T
T
F
F
F
F
6
marked[v]v
8
12
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
9
2
5
3
0
1211
10
1
7
Kosaraju-Sharir
7 done
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
F
F
F
F
T
T
T
F
F
F
F
6
marked[v]v
7 8
6
13
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
9
2
5
3
0
1211
10
1
Kosaraju-Sharir
6 done
0
1
2
3
4
5
6
7
8
9
10
11
12
6
marked[v]v
6 7 8
T
F
F
F
F
F
T
T
T
F
F
F
F
0
14
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
9
2
5
3
1211
10
1
Kosaraju-Sharir
visit 0
0
1
2
3
4
5
6
7
8
9
10
11
12
0marked[v]v
6 7 8
T
F
F
F
F
F
T
T
T
F
F
F
F
15
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
9
2
5
3
1211
10
1
Kosaraju-Sharir
visit 2
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
T
F
F
F
T
T
T
F
F
F
F
0marked[v]v
6 7 8
16
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
9
2
5
3
1211
10
1
Kosaraju-Sharir
visit 4
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
T
F
T
F
T
T
T
F
F
F
F
0
6 7 8
marked[v]v
17
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
9
2
5
3
1211
10
1
Kosaraju-Sharir
visit 11
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
T
F
T
F
T
T
T
F
F
T
F
0marked[v]v
6 7 8
18
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
9
2
5
3
1211
10
1
Kosaraju-Sharir
visit 9
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
T
F
T
F
T
T
T
T
F
T
F
0marked[v]v
6 7 8
19
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
9
2
5
3
1211
10
1
Kosaraju-Sharir
visit 12
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
T
F
T
F
T
T
T
T
F
T
T
0marked[v]v
6 7 8
20
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
9
2
5
3
1211
10
1
Kosaraju-Sharir
visit 12
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
T
F
T
F
T
T
T
T
F
T
T
0marked[v]v
6 7 8
21
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
9
2
5
3
1211
10
1
Kosaraju-Sharir
visit 10
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
T
F
T
F
T
T
T
T
T
T
T
0marked[v]v
6 7 8
22
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
9
2
5
3
1211
10
1
Kosaraju-Sharir
10 done
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
T
F
T
F
T
T
T
T
T
T
T
0marked[v]v
10 6 7 8
12
23
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
9
2
5
3
11
1
Kosaraju-Sharir
12 done
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
T
F
T
F
T
T
T
T
T
T
T
0
12
marked[v]v
12 10 6 7 8
9
24
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
2
5
3
11
1
Kosaraju-Sharir
visit 9
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
T
F
T
F
T
T
T
T
T
T
T
0
9
marked[v]v
12 10 6 7 8
25
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
2
5
3
11
1
Kosaraju-Sharir
visit 9
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
T
F
T
F
T
T
T
T
T
T
T
0
9
marked[v]v
12 10 6 7 8
26
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
2
5
3
11
1
Kosaraju-Sharir
9 done
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
T
F
T
F
T
T
T
T
T
T
T
0
9
marked[v]v
9 12 10 6 7 8
11
27
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1
4
2
5
3
1
Kosaraju-Sharir
11 done
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
T
F
T
F
T
T
T
T
T
T
T
0
11
marked[v]v
11 9 12 10 6 7 8
4
28
Phase 1. Compute reverse postorder in GR.
11 9 12 10 6 7 8
1
4
9
2
5
3
0
1211
10
1
8 76
1 2
5
3
1
Kosaraju-Sharir
visit 4
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
T
F
T
F
T
T
T
T
T
T
T
0
4
marked[v]v
29
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1 2
5
3
1
Kosaraju-Sharir
visit 4
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
T
F
T
F
T
T
T
T
T
T
T
0
4
marked[v]v
11 9 12 10 6 7 8
30
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1 2
5
3
1
Kosaraju-Sharir
visit 5
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
T
F
T
T
T
T
T
T
T
T
T
0
4
marked[v]v
11 9 12 10 6 7 8
31
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1 2
5
3
1
Kosaraju-Sharir
visit 3
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
T
T
T
T
T
T
T
T
T
T
T
0
4
marked[v]v
11 9 12 10 6 7 8
32
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1 2
5
3
1
Kosaraju-Sharir
visit 3
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
T
T
T
T
T
T
T
T
T
T
T
0
4
marked[v]v
11 9 12 10 6 7 8
33
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1 2
5
3
1
Kosaraju-Sharir
3 done
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
T
T
T
T
T
T
T
T
T
T
T
0
4
marked[v]v
3 11 9 12 10 6 7 8
5
34
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1 21
Kosaraju-Sharir
visit 5
0
1
2
3
4
5
6
7
8
9
10
11
12
T
F
T
T
T
T
T
T
T
T
T
T
T
0
4
5
marked[v]v
3 11 9 12 10 6 7 8
35
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1 21
Kosaraju-Sharir
5 done
0
1
2
3
4
5
6
7
8
9
10
11
12
0
4
5
marked[v]v
5 3 11 9 12 10 6 7 8
T
F
T
T
T
T
T
T
T
T
T
T
T
4
36
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
1 21
Kosaraju-Sharir
4 done
0
1
2
3
4
5
6
7
8
9
10
11
12
0
4
marked[v]v
4 5 3 11 9 12 10 6 7 8
T
F
T
T
T
T
T
T
T
T
T
T
T
2
37
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
11
Kosaraju-Sharir
visit 2
0
1
2
3
4
5
6
7
8
9
10
11
12
0
2
marked[v]v
4 5 3 11 9 12 10 6 7 8
T
F
T
T
T
T
T
T
T
T
T
T
T
38
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
11
Kosaraju-Sharir
2 done
0
1
2
3
4
5
6
7
8
9
10
11
12
0
2
marked[v]v
2 4 5 3 11 9 12 10 6 7 8
T
F
T
T
T
T
T
T
T
T
T
T
T
0
39
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
11
Kosaraju-Sharir
0 done
0
1
2
3
4
5
6
7
8
9
10
11
12
0marked[v]v
0 2 4 5 3 11 9 12 10 6 7 8
T
F
T
T
T
T
T
T
T
T
T
T
T
40
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
11
Kosaraju-Sharir
visit 1
0
1
2
3
4
5
6
7
8
9
10
11
12
T
T
T
T
T
T
T
T
T
T
T
T
T
marked[v]v
0 2 4 5 3 11 9 12 10 6 7 8
41
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
Kosaraju-Sharir
1 done
0
1
2
3
4
5
6
7
8
9
10
11
12
T
T
T
T
T
T
T
T
T
T
T
T
T
marked[v]v
1 0 2 4 5 3 11 9 12 10 6 7 8
1
42
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
Kosaraju-Sharir
check 2 3 4 5 6 7 8 9 10 11 12
0
1
2
3
4
5
6
7
8
9
10
11
12
T
T
T
T
T
T
T
T
T
T
T
T
T
marked[v]v
1 0 2 4 5 3 11 9 12 10 6 7 8
43
Phase 1. Compute reverse postorder in GR.
1
4
9
2
5
3
0
1211
10
1
8 76
Kosaraju-Sharir
1 0 2 4 5 3 11 9 12 10 6 7 8
reverse digraph GR
44
‣ DFS in reverse graph
‣ DFS in original graph
45
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
10
Kosaraju-Sharir
1
4
9
2
5
3
0
1211
10
8 76 8 76 0
1
2
3
4
5
6
7
8
9
10
11
12
scc[v]v
–
–
–
–
–
–
–
–
–
–
–
–
–
original digraph G
1 0 2 4 5 3 11 9 12 10 6 7 8
46
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
10
Kosaraju-Sharir
1
4
9
2
5
3
0
1211
10
8 76 8 76
visit 1
0
1
2
3
4
5
6
7
8
9
10
11
12
–
0
–
–
–
–
–
–
–
–
–
–
–
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
47
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
11
4
9
2
5
3
0
1211
10
Kosaraju-Sharir
4
9
2
5
3
0
1211
10
8 76 8 76
1 done
0
1
2
3
4
5
6
7
8
9
10
11
12
–
0
–
–
–
–
–
–
–
–
–
–
–
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
48
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
10
Kosaraju-Sharir
1
4
9
2
5
3
0
1211
10
8 76 8 76
strong component: 1
0
1
2
3
4
5
6
7
8
9
10
11
12
–
0
–
–
–
–
–
–
–
–
–
–
–
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
49
1
0
–
–
–
–
–
–
–
–
–
–
–
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
4
9
2
5
3
0
1211
10
Kosaraju-Sharir
visit 0
4
9
2
5
3
0
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
8 76
1
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
50
1
0
–
–
–
1
–
–
–
–
–
–
–
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
4
9
2
5
3
0
1211
10
Kosaraju-Sharir
visit 5
4
9
2
5
3
0
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
8 76
1
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
51
1
0
–
–
1
1
–
–
–
–
–
–
–
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
4
9
2
5
3
0
1211
10
Kosaraju-Sharir
visit 4
4
9
2
5
3
0
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
8 76
1
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
52
1
0
–
1
1
1
–
–
–
–
–
–
–
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
4
9
2
5
3
0
1211
10
Kosaraju-Sharir
visit 3
4
9
2
5
3
0
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
8 76
1
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
53
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
4
9
2
5
3
0
1211
10
Kosaraju-Sharir
visit 3
4
9
2
5
3
0
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
8 76
1
1
0
–
1
1
1
–
–
–
–
–
–
–
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
54
1
0
1
1
1
1
–
–
–
–
–
–
–
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
4
9
2
5
3
0
1211
10
Kosaraju-Sharir
visit 2
4
9
2
5
3
0
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
8 76
1
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
55
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
4
9
2
5
3
0
1211
10
Kosaraju-Sharir
visit 2
4
9
2
5
3
0
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
8 76
1
1
0
1
1
1
1
–
–
–
–
–
–
–
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
56
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
22
4
9
5
3
0
1211
10
Kosaraju-Sharir
2 done
4
9
5
3
0
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
8 76
1
1
0
1
1
1
1
–
–
–
–
–
–
–
3
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
57
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
3
4
9
2
5
0
1211
10
Kosaraju-Sharir
3 done
4
9
5
0
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
8 76
1
1
0
1
1
1
1
–
–
–
–
–
–
–
3
4
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
58
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
4
9
2
5
3
0
1211
10
Kosaraju-Sharir
visit 4
4
9
5
0
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
8 76
1
1
0
1
1
1
1
–
–
–
–
–
–
–
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
59
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
9
2
5
3
0
1211
10
Kosaraju-Sharir
4 done
9
5
0
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
8 76
1
1
0
1
1
1
1
–
–
–
–
–
–
–
44
5
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
60
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
5
4
9
2
3
0
1211
10
Kosaraju-Sharir
5 done
9
0
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
8 76
1
1
0
1
1
1
1
–
–
–
–
–
–
–
5
0
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
61
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
4
9
2
5
3
0
1211
10
Kosaraju-Sharir
visit 0
9
0
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
8 76
1
1
0
1
1
1
1
–
–
–
–
–
–
–
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
62
00
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
1211
10
8 76
Kosaraju-Sharir
0 done
9
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
–
–
–
–
–
–
–
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
63
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
3
0
1211
10
8 76
Kosaraju-Sharir
strong component: 0 2 3 4 5
9
0
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
–
–
–
–
–
–
–
5
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
64
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
10
8 76
Kosaraju-Sharir
check 2
9
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
–
–
–
–
–
–
–
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
65
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
10
8 76
Kosaraju-Sharir
check 4
9
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
–
–
–
–
–
–
–
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
66
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
10
8 76
Kosaraju-Sharir
check 5
9
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
–
–
–
–
–
–
–
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
67
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
10
8 76
Kosaraju-Sharir
check 3
9
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
–
–
–
–
–
–
–
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
68
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
10
8 76
Kosaraju-Sharir
visit 11
9
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
–
–
–
–
–
2
–
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
69
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
10
8 76
Kosaraju-Sharir
visit 11
9
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
–
–
–
–
–
2
–
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
70
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
10
8 76
Kosaraju-Sharir
visit 12
9
1211
10
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
–
–
–
–
–
2
2
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
71
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
10
8 76
Kosaraju-Sharir
visit 9
9
12
10
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
–
–
–
2
–
2
2
11
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
72
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
10
8 76
Kosaraju-Sharir
visit 9
9
12
10
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
–
–
–
2
–
2
2
11
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
73
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
10
8 76
Kosaraju-Sharir
visit 10
9
12
10
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
–
–
–
2
2
2
2
11
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
74
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
10
1
4
9
2
5
3
0
1211
8 76
Kosaraju-Sharir
10 done
9
12
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
–
–
–
2
2
2
2
11
9 10
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
75
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
9
1
4
2
5
3
0
1211
8 76
Kosaraju-Sharir
9 done
12
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
–
–
–
2
2
2
2
11
109
12
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
76
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
12
1
4
9
2
5
3
0
11
8 76
Kosaraju-Sharir
12 done
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
–
–
–
2
2
2
2
11
10
11 12
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
77
1111
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
12
8 76
Kosaraju-Sharir
11 done
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
–
–
–
2
2
2
2
10
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
78
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
8 76
Kosaraju-Sharir
strong component: 9 10 11 12
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
–
–
–
2
2
2
2
11
10
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
79
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
8 76
Kosaraju-Sharir
check 9
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
–
–
–
2
2
2
2
10
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
80
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
8 76
Kosaraju-Sharir
check 12
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
–
–
–
2
2
2
2
10
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
81
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
8 76
Kosaraju-Sharir
check 10
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
–
–
–
2
2
2
2
10
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
82
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
8 76
Kosaraju-Sharir
visit 6
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
3
–
–
2
2
2
2
86 7
10
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
83
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
8 76
Kosaraju-Sharir
visit 6
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
3
–
–
2
2
2
2
8 76
10
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
84
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
8 76
Kosaraju-Sharir
visit 6
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
3
–
–
2
2
2
2
8 76
10
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
85
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
8 76
Kosaraju-Sharir
visit 8
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
3
–
3
2
2
2
2
8 76
10
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
86
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
8
1
4
9
2
5
3
0
1211
7
Kosaraju-Sharir
8 done
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
3
–
3
2
2
2
2
7
10
6 866
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
87
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
8 76
Kosaraju-Sharir
visit 6
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
3
–
3
2
2
2
2
76
10
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
88
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
8 76
Kosaraju-Sharir
6 done
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
3
–
3
2
2
2
2
7
10
6
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
89
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
8 7
Kosaraju-Sharir
strong component: 6 8
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
3
–
3
2
2
2
2
7
10
6
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
90
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
8 76
Kosaraju-Sharir
visit 7
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
3
4
3
2
2
2
2
7
10
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
91
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
8 76
Kosaraju-Sharir
visit 7
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
3
4
3
2
2
2
2
7
10
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
92
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
8 76
Kosaraju-Sharir
7 done
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
3
4
3
2
2
2
2
7
10
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
93
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
8 76
Kosaraju-Sharir
strong component: 7
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
3
4
3
2
2
2
2
7
10
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
94
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
86 7
Kosaraju-Sharir
check 8
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
3
4
3
2
2
2
2
10
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v
95
Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.
1
4
9
2
5
3
0
1211
10
86 7
Kosaraju-Sharir
done
0
1
2
3
4
5
6
7
8
9
10
11
12
1
0
1
1
1
1
3
4
3
2
2
2
2
1 0 2 4 5 3 11 9 12 10 6 7 8
scc[v]v