Kosaraju: Difference between revisions

Line 1,004:
fun kosaraju xs = assigns (nil, visit (nil, Many xs :: nil))
 
fun make (n, is, ijs) =
let
val xs = ListVector.tabulate (n, node)
valfun ysitem i = Vector.fromListsub (xs, i)
fun item i = Vector.sub (ys, i)
fun step (i, j) = connect (item i, item j)
fun path (i :: j :: isjs) = (step (i, j); path (j :: isjs))
| path _ = ()
in
appmap pathitem is; xsbefore app path ijs
end
 
val is = 0 :: nil
val ijs =
[ [0, 1, 2, 3, 4, 2, 0, 5, 7],
[0, 91, 102, 113, 124, 92, 11]0, 5, 7] ::
[0, 9, [110, 11, 12], 9, 11] ::
[31, 5,12] 6, 7, 8, 6, 15],::
[3, 5, 136, 147, 138, 6, 15], ::
[5, 13, [814, 13, 15], ::
[108, 1315] ]::
[10, 13] ::
nil
 
val ns = make (16, is, ijs)
val xs = kosaraju ns</lang>
</lang>
{{out}}
<pre>
Anonymous user