Adloun

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

Le cours du chapitre · Tous les exercices du chapitre