diff --git a/src/BLF.ml b/src/BLF.ml index d4391c9..09cb203 100644 --- a/src/BLF.ml +++ b/src/BLF.ml @@ -15,25 +15,27 @@ let blf gr id_src id_dest= let acu =Array.make nb_n cost in (*je fais un fold_left pour pouvoir individualiser au niveau de la mémoire les cases de la table*) let blf_tab=n_fold gr (fun acu id->acu.(id)<-{cout=max_int; father=(-1)}; acu ) acu in - + blf_tab.(id_src).cout<-0; let file_id=[id_src] in + let file_marque =[] in - let rec blf_rec gr file_id = match file_id with + let rec blf_rec gr file_id file_marque= match file_id with |[]-> blf_tab |a::b-> let l_out_arc=out_arcs gr a in - let rec loop_suc file_id l_out_arc blf_tab=match l_out_arc with - |[]-> blf_rec gr b + let rec loop_suc l_out_arc blf_tab file = + match l_out_arc with + |[]-> blf_rec gr file (a::file_marque) |(id,label)::d-> if label != 0 && (blf_tab.(a).cout+label)