利用深度优先搜索寻找java中3个水罐问题的所有可能的无目标状态

b4wnujal  于 2021-07-07  发布在  Java
关注(0)|答案(0)|浏览(215)

尝试编写一个代码,该代码将输出给定起始节点{0,0,0}和3个水壶容量{8,5,3}时可以到达的所有可能节点。你可以把每个jar装满水,倒空jar或者从一个jar倒到另一个jar。通常会有一个最终目标,例如在jug1中有4l,但是对于我的任务,我试图列出所有可以生成而没有最终目标的节点。
到目前为止,我知道如何处理dfs问题,因为所有节点都已知,所有可能的路径都已知。但是对于如何生成一个图形/树来输出所有的节点真的很困惑。

So I have 12 rules in total:

 1. FillA
 2. FillB
 3. FillC
 4. EmptyA
 5. EmptyB
 6. EmptyC
 7. Pour from A->B
 8. Pour from A->C
 9. Pour from B->A
 10. Pour from B->C
 11. Pour from C->A
 12. Pour from C->B

我的第一步是初始化根{0,0,0},创建堆栈并创建一个已访问的节点数组,将根推到堆栈中。在这之后我所做的是让我困惑的部分。我可以运行一个函数,使用12个规则从当前节点生成12个节点,但是我该如何处理这12个节点呢?很明显,我必须将访问的下一个节点推到堆栈中,添加它的数组,然后运行函数来生成下12个节点等等。
我一直试图用我对java所知甚少的知识来解决这个问题,但没有找到任何答案。任何帮助都将不胜感激。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题