1. 学ぶ
  2. /
  3. コース
  4. /
  5. Pythonで学ぶネットワーク分析入門

Connected

演習

Shortest Path II

すでに、目的地のノードが neighbors に含まれているかをチェックするコードはできています。次は、目的地のノードが neighbors に含まれていない場合の処理を、同じ関数に書き足していきます。

記述が必要なのは else ブロック、つまり node2 が neighbors に「含まれていない」場合のコードだけです。

指示

100 XP
  • .add() メソッドを使って、現在のノード node を集合 visited_nodes に追加し、すでに訪れたノードを記録します。
  • まだ訪れていない現在のノード node の「neighbors」を queue に追加します。これには、queue の .extend() メソッドとリスト内包表記を使います。.extend() は与えられたリスト内のすべての要素を末尾に追加します。
    • リスト内包表記の 出力式 と 反復変数 はどちらも n、iterable は neighbors のイテレータで、条件は n が未訪問ノード(visited nodes)に「含まれていない」ことです。