CommencezCommencez gratuitement

Chemin le plus court III

Voici le dernier exercice de cette trilogie! Vous allez maintenant compléter le problème en écrivant le code qui retourne False s'il n'y a aucun chemin entre deux nœuds.

Cette activité fait partie du cours

Introduction à l'analyse des réseaux en Python

Voir le cours

Instructions de l’exercice

  • Vérifiez si la file a été vidée. Pour ce faire, inspectez le dernier élément de queue avec [-1].
  • Placez l'instruction de retour appropriée pour indiquer s'il existe un chemin entre ces deux nœuds.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

def path_exists(G, node1, node2):
    """
    This function checks whether a path exists between two nodes (node1, node2) in graph G.
    """
    visited_nodes = set()
    queue = [node1]

    for node in queue:
        neighbors = list(G.neighbors(node))
        if node2 in neighbors:
            print('Path exists between nodes {0} and {1}'.format(node1, node2))
            return True
            break

        else:
            visited_nodes.add(node)
            queue.extend([n for n in neighbors if n not in visited_nodes])

        # Check to see if the final element of the queue has been reached
        if node == ____:
            print('Path does not exist between nodes {0} and {1}'.format(node1, node2))

            # Place the appropriate return statement
            return ____
Modifier et exécuter le code