Kosaraju: Difference between revisions

Line 588:
 
Strongly connected components: (Andy Bart Carl)(Dave Earl)(Fred Gary)(Hank)</pre>
 
=={{header|Phix}}==
<lang Phix>sequence visited, l, t, c
 
procedure visit(sequence g, integer u)
if not visited[u] then
visited[u] = true
for i=1 to length(g[u]) do
integer v = g[u][i]
visit(g,v)
t[v] &= u
end for
l &= u
end if
end procedure
 
procedure assign(integer u, root=u)
if visited[u] then
visited[u] = false
c[u] = root
for v=1 to length(t[u]) do
assign(t[u][v], root)
end for
end if
end procedure
 
function korasaju(sequence g)
integer len = length(g)
visited = repeat(false,len)
l = {}
t = repeat({},len)
for u=1 to len do
visit(g,u)
end for
c = repeat(0,len)
for u=length(l) to 1 by -1 do
assign(l[u])
end for
return c
end function
constant g = {{2}, {3}, {1}, {2, 3, 5}, {4, 6}, {3, 7}, {6}, {5, 7, 8}}
?korasaju(g)</lang>
{{out}}
<pre>
{1,1,1,4,4,6,6,8}
</pre>
 
=={{header|Python}}==
7,805

edits