我已经找到了一个简单的算法来查找图中的所有循环,可以在这里找到。我还需要打印出循环,这个算法能实现吗?请查看下面的代码。
我已正确地得到了循环的数量!
node1、node2是整数。visited是一个字典。
我已正确地得到了循环的数量!
node1、node2是整数。visited是一个字典。
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)
4
的定义)。你可以在图表定义中添加4: []
,或者将for next_state in graph[state]:
替换为for next_state in graph.get(state, []):
。 - AChampion(2, 3)
max(len(p)+1 for p in dfs(graph, 3, 2))
。 - AChampion