Tarjan: Difference between revisions

Content added Content deleted
m (→‎{{header|K}}: a bit more idiomatic)
Line 892: Line 892:
Implementation:
Implementation:
<syntaxhighlight lang=K>F:{[g]
<syntaxhighlight lang=K>F:{[g]
r::s::!i::0; t::+`o`j`k!(#g)#'0,2##g
r::s::!i::0
t::+`o`j`k!(#g)#'0,2##g
L::{[g;v]
L::{[g;v]
t[v]:1,i,i; s,:v; i+:1
t[v]:1,i,i; s,:v; i+:1
Line 899: Line 900:
t[`j;v]&:t[`j;w]}[g;v]'g[v]
t[`j;v]&:t[`j;w]}[g;v]'g[v]
$[=/t[`j`k;v]
$[=/t[`j`k;v]
[a:*&v=s; c:a_s; t[`o;c]:0; s::a#s; r::r,,c]
[a:*&v=s; c:a_s; t[`o;c]:0; s::a#s; r,:,c]
]}[g]
]}[g]
{[g;v] $[(#g)=t[`k;v]; L v; ]}[g]'!#g
{[g;v] $[(#g)=t[`k;v]; L v; ]}[g]'!#g