如何解决如何以迭代方式检测有向图中的循环?
我正在尝试对有向图中的循环实施非递归检查。许多涵盖此内容的 Python 资源都是递归的。
这是我当前的代码
{ "edges": [[1,3],[2,3,4],[0],[],5],[]]}
def cycleInGraph(edges):
visited = [False for node in edges]
onStack = [False for node in edges]
for node in range(len(edges)):
if visited[node]:
continue
return checkCycle(node,edges,visited,onStack)
def checkCycle(node,onStack):
stack = [node]
while len(stack):
current = stack.pop()
if visited[current]:
continue
visited[current] = True
onStack[current] = True
children = edges[current]
for child in children:
if not visited[child]:
stack.append(child)
elif onStack[child]:
return True
return False
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。