Compter les composantes connexes
Exercice de TD · niveau 2 · NSI (terminale), chapitre 4 — Les graphes
Énoncé
Compter les composantes connexes.
Écrire une fonction nb_composantes(G) qui renvoie le nombre de composantes connexes d'un graphe non orienté.
Corrigé
On lance un parcours à partir de chaque sommet non encore visité ; chaque parcours révèle une composante entière.
def nb_composantes(G):
visites = set()
nb = 0
def explorer(depart):
pile = [depart]
while pile:
u = pile.pop()
if u not in visites:
visites.add(u)
for v in G[u]:
if v not in visites:
pile.append(v)
for sommet in G:
if sommet not in visites:
nb += 1
explorer(sommet)
return nb
G = {0: [1], 1: [0, 2], 2: [1], 3: [4], 4: [3]}
print(nb_composantes(G)) # 2
La complexité est : chaque sommet et chaque lien sont traités une seule fois au total.
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.