Advertisement
jasio1906

bfs

Jan 16th, 2020
1,278
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
OCaml 0.82 KB | None | 0 0
  1. let bfs mat start finish=
  2.         let n = Array.length mat in
  3.         let q = Queue.create () in
  4.         let visited = Array.make n 0 in
  5.         Queue.add start q;
  6.         let flague = ref false in
  7.         while (Queue.is_empty q <> true && !flague <> true)
  8.         do
  9.                 let cur = Queue.take q in
  10.                 for i = 0 to n-1
  11.                 do
  12.                         if ((mat.(cur).(i) = 1)&&visited.(i)=0)
  13.                                 then
  14.                                 (if i = finish then (flague:=true;)
  15.                                 else
  16.                                         begin
  17.                                         Queue.add i q;
  18.                                         visited.(i)<-1;
  19.                                         end;)
  20.                 done;
  21.         done;
  22. !flague
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement