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
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 ____