test.ml 926 B

12345678910111213141516171819202122232425262728293031
  1. type 'a poids = Poids of 'a | Infini;;
  2. let rec insere i x l =
  3. match l with
  4. | [] -> [i]
  5. | t::q -> if x > t then i :: l else t :: (insere i x q)
  6. ;;
  7. let liste_triee_arrete w =
  8. let l = ref [] and n = List.length w in
  9. for i = 0 to n - 2 do
  10. for j = i + 1 to (n - 1) do
  11. match (List.nth w i).(j) with
  12. | Poids(p) -> l := insere (i, j) p !l
  13. | Infini -> ()
  14. done;
  15. done;
  16. !l
  17. ;;
  18. let g = [
  19. [Infini; Poids(9); Infini; Poids(5); Infini; Infini; Infini];
  20. [Poids(7); Infini; Poids(8); Poids(9); Poids(7); Infini; Infini];
  21. [Infini; Poids(8); Infini; Infini; Poids(5); Infini; Infini];
  22. [Poids(5); Poids(9); Infini; Infini; Poids(15); Poids(6); Infini];
  23. [Infini; Poids(7); Poids(5); Poids(15); Infini; Poids(8); Poids(9)];
  24. [Infini; Infini; Infini; Poids(6); Poids(8); Infini; Poids(11)];
  25. [Infini; Infini; Infini; Infini; Poids(9); Poids(11); Infini];
  26. ];;
  27. let aretes = liste_triee_arrete g;;