我是Java的初学者,需要一些帮助。
我正在尝试实现广度优先搜索算法来解决一个益智游戏(安卓上的Unblock Me)。我的GUI已经做好了,但是我在算法方面卡住了。
到目前为止,我可以计算每个块的可用移动次数,这些块应该是根节点的子节点。每个节点(链表)都有每个块的位置,并且所有节点都存储在一个Set中。
现在我需要标记每个节点为已访问,以免陷入无限循环。
如果有任何帮助,我将不胜感激,并请指出我是否对任何事情有误解。
提前致谢 :)
我正在尝试实现广度优先搜索算法来解决一个益智游戏(安卓上的Unblock Me)。我的GUI已经做好了,但是我在算法方面卡住了。
到目前为止,我可以计算每个块的可用移动次数,这些块应该是根节点的子节点。每个节点(链表)都有每个块的位置,并且所有节点都存储在一个Set中。
现在我需要标记每个节点为已访问,以免陷入无限循环。
如果有任何帮助,我将不胜感激,并请指出我是否对任何事情有误解。
提前致谢 :)
Deque
接口,您可以轻松地将BFS修改为DFS(如果需要)。http://docs.oracle.com/javase/7/docs/api/java/util/Deque.html - Thomas JungblutprintNode()
和visited()
定义在哪里?我该如何模拟visited
? - user3871