2010-10-17 96 views
2

我已经实现了图遍历算法,该算法可以在图中的两个节点之间找到路径。问题是,它只发现一些查询的路径,当我知道每个节点之间都存在路径时我在算法中丢失了某些东西?我已经运行调试器,但我找不到问题图遍历问题

+0

您可以在此处添加对您的算法的简要说明吗? – 2010-10-17 22:34:22

+1

什么是顶点? '继承者(Node)'做什么?你好像有你没有列出的全球数据。你如何将图形编码为对象? – 2010-10-17 22:46:49

+0

@matt b +1,我们需要其余的代码来理解这一点。 – andersoj 2010-10-17 23:47:33

回答

0

看起来您正在使用广度优先搜索而不是Dijkstra算法来查找从开始到结束的路径。 我假定后继者返回当前可以遍历的节点,并且vertices.get(0)意味着没有其他节点的外部边缘的节点。

考虑到这一点,它看起来像你的代码应该正常工作。

所以我不得不说它是你的继承者方法工作不正确,或者你添加了顶点的顶点(0)(虽然这只能容纳1个节点)。

如果我们知道接替者做了什么以及存储在顶点中,你可能会得到更好的答案。

+0

这是后继方法是错误。现在修复它。谢谢:-) – Joshy910 2010-10-20 14:50:14

1

我知道你只是想让你的代码工作,可能不会去找图书馆。但仅供参考,您可能会看到JGraphT,这是一个很棒的Java图形库。除此之外,还有一个坚实的Dijkstra的实施。

+0

谢谢。下次我会记住这一点:-) – Joshy910 2010-10-20 14:51:35