Java A*实现导致两个连接节点
我试着在谷歌和stackoverflow上搜索类似的问题,但没有找到 我对A*的实现是有效的,但是,当收集从开始节点到结束节点的路径时,它只是在相互连接的两个节点之间循环(我可以从节点A到节点B,也可以从节点B到节点A) 我遵循了wikipedia的A*实现,但当我创建Dijksta算法时,它使用了同样的方法,工作得非常完美——所以我不明白为什么不是这样 我当前的输出是:Java A*实现导致两个连接节点,java,path,dijkstra,a-star,finder,Java,Path,Dijkstra,A Star,Finder,我试着在谷歌和stackoverflow上搜索类似的问题,但没有找到 我对A*的实现是有效的,但是,当收集从开始节点到结束节点的路径时,它只是在相互连接的两个节点之间循环(我可以从节点A到节点B,也可以从节点B到节点A) 我遵循了wikipedia的A*实现,但当我创建Dijksta算法时,它使用了同样的方法,工作得非常完美——所以我不明白为什么不是这样 我当前的输出是: Node: 3093, Node: 3085, Node: 3093, Node: 3085, Node: 3093
Node: 3093,
Node: 3085,
Node: 3093,
Node: 3085,
Node: 3093,
Node: 3085,
Node: 3093,
... repeated
有人知道为什么它不能正确地存储.from吗?
此外,我还想存储程序通过的边,以获得成功的路径-有人知道我将如何做到这一点吗?我可以简单地实现一个将添加正确边缘的存储吗?其中有带有注释的for循环: “//如果邻居在闭合集中,移动到下一个邻居”break语句将中断for循环,并继续计算邻居,即使它在闭合集中
在此处设置布尔值并继续while将至少解决该问题。啊,谢谢,已经解决了!我没有注意到我的休息并不像我想象的那样!伟大的很高兴我能帮忙。