Tarjan: Difference between revisions
Content added Content deleted
m (→{{header|K}}) |
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 |
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: |
[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 |