Prépa Code Connexion Inscription

Exercices de programmation pour classes préparatoires

← Retour aux exercices

Distances par parcours en largeur

ocaml ★★★☆☆

Écrire une fonction bfs_distances : int list array -> int -> int array qui, étant donné un graphe et un sommet s, renvoie le tableau des distances (en nombre d'arêtes) de s vers chaque sommet.

Représentation : le graphe est un tableau adj de type int list array (listes d'adjacence). Les sommets sont numérotés de 0 à n-1n = Array.length adj.

Pour les sommets inaccessibles depuis s, on met -1 dans le tableau.

On utilisera le module Queue de la bibliothèque standard. La distance de s à lui-même vaut 0.

Exemples

AppelRésultat attendu
bfs_distances [| [1; 2]; [0]; [0] |] 0 [|0; 1; 1|]
bfs_distances [| [1]; [0]; [] |] 0 [|0; 1; -1|]

Votre code

Connectez-vous pour soumettre du code.