我必须在图表中找到周期数。
我有一组相互连接的节点,它们具有以下结构:
class Node:
def __init__(self, id, value):
self.divergencePoint = 0
self.convergencePoint = 0
self.id = id
self.value = value
self.parents = []
self.children = []
我已经成功创建了图形和字段divergencePoint和 如果converPoint是收敛点或发散点,则converset设置为1。
现在我该如何检测周期?
答案 0 :(得分:0)
由于您已经找到了收敛点和发散点,因此这是一项简单的任务。您从分歧点开始,递归地将其子项添加到钻石中,直到遇到收敛点。
for node in divergence_nodes:
diamond= {node}
queue= node.children[:]
while queue:
node= queue.pop()
if node in diamond:
continue
diamond.add(node)
if not node.convergencePoint:
queue+= node.children