【发布时间】:2014-05-12 02:10:22
【问题描述】:
我正在尝试编写一个程序来检查给定矩阵是否具有欧拉电路,我正在使用 DFS 进行检查,但我的递归调用存在一些问题。
第一次调用 DFSvisited 是 DFSvisited(G
def DFSvisited(G,i,j,temp_path):
G[i][j]=0
G[j][i]=0
temp_path.append(j)
for k in range(0,n):
if G[j][k]==1:
print 'j+++',j,"#### k",k
DFSvisited(G,j,k,temp_path)
我传递了一个如下所示的矩阵:
0 1 0 0 0 1 0
1 0 1 0 0 1 1
0 1 0 1 1 0 1
0 0 1 0 1 0 0
0 0 1 1 0 1 1
1 1 0 0 1 0 1
0 1 1 0 1 1 0
但它在第一次迭代中返回 [0, 1, 2, 3, 4, 5, 6, 6, 4, 6, 5, 6] 的 temp_path 而不是 [0,1,2,3,4,2,6,1,5,0]。
我想我在 DFSvisied 方法内的 DFSvisited 递归调用中遗漏了一些东西,有什么想法吗?
谢谢!
【问题讨论】:
标签: python graph depth-first-search