我試圖在python中(與標準圖算法一起)構建圖庫。我試圖實現DFS,這是它看起來像在python中編寫更好的遞歸深度優先搜索
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使用,我無法想出,工程實施像上面一樣。有人能給我一些關於我如何實現這一目標的指針嗎?
非常愚蠢的我沒有想到這一點!非常感謝 – Prakhar
@Prakhar:好好學習,因爲你可能會遇到很多次需要。這是計算機科學發揮基本規律的一個例子,它說所有問題都可以通過另一個層面的間接方式來解決。 – martineau