python中使用dfs的euler电路

2024-09-26 18:08:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图写一个程序来检查一个给定的矩阵是否有欧拉回路,我使用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的递归调用中遗漏了一些东西,有什么想法吗?你知道吗

谢谢!你知道吗


Tags: pathinlt程序forifdefrange

热门问题