NSI (terminale) · Chapitre 4 · Application directe du cours
Tester l'existence d'un chemin
Les graphes · niveau 1 (application)
É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 .
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.