python迷宫代码深度优先_python中的深度优先搜索(DFS)代码

我想你有个缩进的问题。假设您的代码如下所示:graph1 = {

'A' : ['B','S'],

'B' : ['A'],

'C' : ['D','E','F','S'],

'D' : ['C'],

'E' : ['C','H'],

'F' : ['C','G'],

'G' : ['F','S'],

'H' : ['E','G'],

'S' : ['A','C','G']

}

visited = []

def dfs(graph,node):

global visited

if node not in visited:

visited.append(node)

for n in graph[node]:

dfs(graph,n)

dfs(graph1,'A')

print(visited)

我想说几句:如果可以的话,尽量避免使用全局变量

使用集合而不是访问列表

另外:这对森林不起作用,但我想你已经知道了

如果引用不存在的节点,则将失败。

更新代码:graph1 = {

'A' : ['B','S'],

'B' : ['A'],

'C' : ['D','E','F','S'],

'D' : ['C'],

'E' : ['C','H'],

'F' : ['C','G'],

'G' : ['F','S'],

'H' : ['E','G'],

'S' : ['A','C','G']

}

def dfs(graph, node, visited):

if node not in visited:

visited.append(node)

for n in graph[node]:

dfs(graph,n, visited)

return visited

visited = dfs(graph1,'A', [])

print(visited)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值