我正在尝试在 python 中构建一个图形库(以及标准图形算法)。我试图实现 DFS,这就是它的样子
def DFS(gr, s, path):
""" Depth first search
Returns a list of nodes "findable" from s """
if s in path: return False
path.append(s)
for each in gr.neighbors(s):
if each not in path:
DFS(gr, each, path)
这工作正常,但我对它的使用方式不满意。例如,目前您需要这样做
path = []
DFS(mygraph, "s", path)
print path
而不是这个,我想以这种方式使用 DFS
path = DFS(mygraph, "s")
print path
使用递归 DFS,我无法想出像上面那样工作的实现。有人可以给我一些关于如何实现这一目标的指示吗?