OCaml (option informatique) · Chapitre 14 · Exercice de TD
Nombre d'arêtes
Graphes : modélisation et représentations · niveau 2
Énoncé
Écrire nb_aretes m (graphe non orienté représenté par matrice).
Corrigé
let nb_aretes m =
let n = Array.length m in
let c = ref 0 in
for i = 0 to n - 1 do
for j = 0 to n - 1 do
if m.(i).(j) then c := !c + 1
done
done;
!c / 2
Chaque arête {i,j} apparaît deux fois dans la matrice symétrique (m.(i).(j) et m.(j).(i)) : on compte les true et l'on divise par . (On pourrait aussi ne compter que la moitié supérieure, j > i.)
Exercices semblables
- Matrice vers listes corrigé
- Listes vers matrice corrigé
- Voisins communs corrigé
- Graphe complet corrigé
- Sommet isolé corrigé