基于两条边之间的角度,我遇到了关于Graph遍历的问题。我想总结一下这个问题,给出5个顶点a,b,c,d,e
和边(a, b)
,(b, c)
,(c, d)
,(d, e)
。
如果我想基于计算两条边之间的角度来遍历图形,例如angle((a, b), (b, c))
。如果我的角度大于10度,我应该停在b
并再次开始这个过程。
在具体的编程结构中,我需要考虑采取哪些步骤来解决这个问题。
答案 0 :(得分:0)
如果我理解正确,当angle((a,b),(b,c))
返回的值超过某个阈值(在您的示例中为10)时,您应该停止遍历图表。
这意味着,有效地,此节点(b
)无法通过连接两条边((a,b)
和(b,c)
)来提供帮助。它可能对其他一组边有用,但该特定连接不可用。
我的建议是交换边和节点的角色。 G
中的每个边都成为G'
中的一个节点,G
中的每个节点都成为G'
的边缘,如果{{1}的值返回低于阈值的值。
在angle()
上,您现在可以运行BFS,DFS或您喜欢的任何其他算法。完成后,使用反向转换来"翻译"你的答案回到原来的图表中。