我试图写一个程序来检查一个给定的矩阵是否有欧拉回路,我使用DFS来检查,但是在我的递归调用中有一些问题。你知道吗
dfsvisted的第一个调用是dfsvisted(G<;-如下所示,0,1,temp\u path=0)
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]
,而不是[0,1,2,3,4,2,6,1,5,0]。你知道吗
我想我在DFSvisied方法中DFSvisited的递归调用中遗漏了一些东西,有什么想法吗?你知道吗
谢谢!你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐