Tarjan: Difference between revisions

33 bytes removed ,  1 year ago
m
→‎{{header|K}}: more idiomatic, maybe easier to read
(K)
m (→‎{{header|K}}: more idiomatic, maybe easier to read)
Line 891:
=={{header|K}}==
Implementation:
<syntaxhighlight lang=K>F:{u::#[g::x]
r::s::!i::0
t::+`o`j`k`o!u(#g)#'u,u,0,2##g
L::{t[xg;v]:i,i,1
t[v]:1,i,i; s,:xv; i+:1
i::i+1{[g;v;w]
{ $[u(#g)=t[`k;yw]; L w; ~t[`o;w]; :0N]
[L[y]; t[`j;xv]&:t[`j;yw]}[g;v]'g[v]
$[=/t[`oj`k;yv]
[a:*&v=s; c:a_s; t[`jo;xc]&:t[`j0;y s::a#s; r::r,,c]
]}[x;]'g[x]
{[g;v] $[(#g)=/t[`j`k;xv]; L v; ]}[g]'!#g
[a:*&x=s
c:a_s
t[`o;c]:0
s::a#s
r::r,,c]
]}
{$[u=t[`k;x]; L[x]; ]}'!#g
r}</syntaxhighlight>
 
6,951

edits