NSI (terminale) · Chapitre 4 · Exercice de TD
Compter les composantes connexes
Les graphes · niveau 2
É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.
100 % gratuit
Essaie le suivant avec le tuteur
- L'exercice suivant avec le tuteur, sans compte : il guide pas à pas, sans donner la réponse
- 8 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre : 2 minutes d'écoute sans compte
Sans compte : le cours, le premier QCM, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.