Tester l'existence d'un chemin
Application directe du cours · niveau 1 (application) · NSI (terminale), chapitre 4 — Les graphes
Énoncé
Tester l'existence d'un chemin.
Écrire une fonction existe_chemin(G, u, v) qui renvoie True s'il existe un chemin entre et dans le graphe, False sinon.
Corrigé
Il suffit de lancer un parcours (BFS ou DFS) à partir de et de vérifier si est atteint.
from collections import deque
def existe_chemin(G, u, v):
if u == v:
return True
visites = {u}
file = deque([u])
while file:
courant = file.popleft()
for voisin in G[courant]:
if voisin == v:
return True
if voisin not in visites:
visites.add(voisin)
file.append(voisin)
return False
G = {0: [1], 1: [0, 2], 2: [1], 3: [4], 4: [3]}
print(existe_chemin(G, 0, 2)) # True
print(existe_chemin(G, 0, 3)) # False (composantes distinctes)
La complexité est .
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.