Aan de slagGa gratis aan de slag

Shortest Path III

Dit is de laatste oefening van dit trio! Je gaat het probleem nu afronden door de code te schrijven die False teruggeeft als er geen pad is tussen twee knopen.

Deze oefening maakt deel uit van de cursus

Introductie tot netwerkanalyse in Python

Cursus bekijken

Oefeninstructies

  • Controleer of de queue is leeggeraakt. Dat kan door het laatste element van queue te inspecteren met [-1].
  • Plaats de juiste return-instructie om aan te geven of er een pad is tussen deze twee knopen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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 ____
Code bewerken en uitvoeren