Shortest Path III
この三部作の最終演習です!2つのノード間に経路がない場合に False を返すコードを書いて、問題を完成させましょう。
この演習はコースの一部です
Pythonで学ぶネットワーク分析入門
演習の手順
- キューが空になったかを確認しましょう。
[-1]を使ってキューの最後の要素を調べることで確認できます。 - これら2つのノード間に経路があるかどうかを示す、適切な return 文を配置してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
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 ____