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,我两者有小而琐碎的问题。我希望你不介意。
Q1。代码的第二行最后一行代表if newpath:
是什么意思? Q2302。此代码是否在有向图中给出全部可能的路径?
谢谢。
感谢user507787。你能说出那条路吗?这将是从钥匙的第一次遇到的价值可能的路径? – Pupil 2010-11-18 02:06:06
请阅读维基百科上的深度优先搜索和广度优先搜索。上面的代码实现的算法是DFS,这意味着如果给出每个节点边缘遍历的顺序,它将找到具有相关序列(m0,m1,m2,...)的路径,我们在这里选择开始时的边缘等等,以便在字典顺序下该序列是最小的。 – user507787 2010-11-18 02:15:02
好的。谢谢:) – Pupil 2010-11-18 02:17:33