我发现了一个简单的算法来找到一个图所有循环这里。我也需要打印出周期,这个算法可以吗?请在下面找到代码。
我得到正确的周期数!
node1, node2 是整数。访问的是一本字典
def dfs(self,node1, node2):
if self.visited[node2]:
if(node1 == node2):
self.count += 1
print node2
return
self.visited[node2] = True
for x in self.adj_lst[node2-1]:
self.dfs(node1, x)
self.visited[node2] = False
def allCycles(self):
self.count = 0
for x in self.VList:
self.dfs(x.num, x.num)
self.visited[x.num] = True
print "Number of cycles: "+str(self.count)
Run Code Online (Sandbox Code Playgroud)