我得到了一个使用样本输入的 DFS,但是每当我使用生成的图作为输入时,它都找不到任何循环。也许你可以在这方面帮助我,因为我似乎陷入了一个逻辑黑洞。
请注意,输入数据的顺序如下:vertex vert got zero or more root vertices。
我正在查看以下伪代码:
nodes = dictionary(Vector2, Vertex)
vertices = GetData()
for each vertex in vertices
bBackEdge = false
//Check if vertex already exists
//If true, we got a back-edge
if nodes[vertex.Vector]
tempVertex = nodes[vertex.Vector]
bBackEdge = true
else
tempVertex = new Vertex(...)
nodes.add(tempVertex.Vector, tempVertex )
end of if
for each root in tempVertex.Roots
if nodes[root.Vector]
tempRoot = nodes[root.Vector]
tempRoot.Children.Add(vein)
if bBackEdge
vein.Children.Add(tempRoot)
end of if
end of if
end of for
end of for