Adloun

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

Faire l'exercice suivant avec le tuteur

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.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant avec le tuteur →