Guest User

Untitled

a guest
Jul 18th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 1.11 KB | None | 0 0
  1. fun iterate([],i,listy,visited,wyn) =
  2. let
  3.   val k1 = if Array.sub(visited,i) = 0 then
  4.     Array.update(wyn,0,i::Array.sub(wyn,0)) else ()
  5.   val k2 = Array.update(visited,i,1)
  6. in
  7.   wyn
  8. end
  9.   |
  10.   iterate(top::l,i,listy,visited,wyn) = let
  11.     val k1 = if Array.sub(visited,i) = 0 then
  12.       Array.update(wyn,0,i::Array.sub(wyn,0)) else ()
  13.     val k2 = Array.update(visited,i,1)
  14.     val k = if Array.sub(visited,top) = 0 then iterate(Array.sub(listy,top),top,listy,visited,wyn) else
  15.       wyn
  16.                                       in
  17.                                         iterate(l,i,listy,visited,wyn)
  18.                                       end;
  19.  
  20. fun iterate2(i,listy,visited,wyn) =
  21.   if i = Array.length(listy) then wyn
  22.   else let
  23.     val k1 = iterate(Array.sub(listy,i),i,listy,visited,wyn)
  24.        in
  25.     iterate2(i+1,listy,visited,wyn)
  26.        end;
  27.  
  28. fun dfs l = let
  29.   val listy = Array.fromList l
  30.   val visited = Array.array (length l,0)
  31.   val wyn = Array.array(1,[])
  32. in
  33.   rev (Array.sub(iterate2(0,listy,visited,wyn),0))
  34. (*rev (Array.sub(iterate(Array.sub(listy,0),0,listy,visited,wyn),0)) *)
  35. end;
Add Comment
Please, Sign In to add comment