De la liste d'arêtes aux deux représentations
Exercice · informatique (tronc commun des prépas scientifiques), chapitre 12 — Les graphes : modèle et représentations
Énoncé
Convertir une liste d'arêtes d'un graphe non orienté en listes d'adjacence, et valider la cohérence.
Corrigé
def depuis_aretes(aretes: list, n: int) -> dict:
G = {s: [] for s in range(n)}
for (u, v) in aretes:
G[u].append(v)
G[v].append(u) # non orienté : symétrie
return G
G = depuis_aretes([(0, 1), (0, 2), (1, 2), (1, 3)], 5)
# G vaut {0: [1, 2], 1: [0, 2, 3], 2: [0, 1], 3: [1], 4: []}
On valide le résultat en vérifiant la symétrie de la matrice d'adjacence et en contrôlant que . Le sommet 4, bien qu'isolé, figure correctement dans le dictionnaire avec sa liste de voisins vide.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.