2
コードは、有向グラフの2つのノード間のパスを決定することです。 Thisコードです:Pythonのグラフ理論エッセイのコードからの質問
def find_path(graph, start, end, path=[]):
path = path + [start]
if start == end:
return path
if not graph.has_key(start):
return None
for node in graph[start]:
if node not in path:
newpath = find_path(graph, node, end, path)
if newpath: return newpath
return None
は、Pythonに新たなので、I 2が小さくて些細な疑問を持っています。あなたが気にしないことを願っています。
Q1。コードの2番目の最後の行にあるif newpath:
は何を意味していますか?
Q2。このコードは、すべての有向グラフで可能なパスを示していますか?
ありがとうございました。
ありがとうございますuser507787あなたはそれがどのような道になるのかを教えてくれますか?それが鍵の最初に出会った価値から可能な道でしょうか? – Pupil
WikipediaのDepth-First-SearchとBreadth-First-Searchで読むことができます。上記のコードで実装されているアルゴリズムはDFSです。つまり、すべてのノードでエッジのトラバースを注文すると、関連するシーケンス(m0、m1、m2、...)を持つパスが見つかります開始時などには、シーケンスが辞書順に最小となるような方法で、最初の最初の行を開始します。 – user507787
よろしくお願いします。ありがとう:) – Pupil