diff --git a/src/phase2.ml b/src/phase2.ml index e5e7f1e51f6fb7a0e3110e68cb7969916e34e3e9..99f9e2e55209edfe2c44c44dc7338d58d2631ee4 100644 --- a/src/phase2.ml +++ b/src/phase2.ml @@ -103,7 +103,7 @@ let capacite c g = let rec liste_capacite m = match m with | [] -> [] | elt::[] -> [] - | e1::(e2::nl) -> (Arreteliste.find e2 (Graphe.find e1 g))::(liste_capacite nl) + | e1::(e2::nl) -> (Arreteliste.find e2 (Graphe.find e1 g))::(liste_capacite (e2::nl)) in let liste = liste_capacite c in @@ -111,5 +111,16 @@ let capacite c g = in List.map f c -(* [graphe_capacite_residuelles c n g] donne le graphe des capacité résiduelles aprèes avoir retirer des arretes du chemin c le nombre n *) -let rec graphe_capacites_residuelles c n g = \ No newline at end of file +(* [graphe_capacite_residuelles c n g] graphe des capacité résiduelles de g aprèes avoir retirer des arretes du chemin c le nombre n *) +let rec graphe_capacites_residuelles c n g = match c with + | [] -> g + | e::[] -> g + | e1::e2::l -> + let s = Graphe.find e1 g + in + let t = Arreteliste.find e2 s + in + let new_e1 = Arreteliste.add e2 (t-n) (Arreteliste.remove e2 s) + in + let new_g = Graphe.add e1 new_e1 (Graphe.remove e1 g) + in graphe_capacites_residuelles (e2::l) n new_g \ No newline at end of file