2

该代码是为有向图确定两个节点之间的路径。是代码:

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:代码的倒数第二行是什么意思?

Q2。这段代码是否给出了有向图中的所有可能路径?

谢谢。

4

1 回答 1

3

Q1:这会检查 find_path 的调用是否真的返回了一些东西。请参阅语言文档以了解如果术语的类型不是布尔值,哪些被解释为真,哪些被解释为假。(在这种情况下, None 评估为假)。

Q2:否:这个函数给出了从开始到结束的确切路径。

于 2010-11-18T02:01:47.147 回答