尝试编写一个代码,该代码将输出给定起始节点{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所知甚少的知识来解决这个问题,但没有找到任何答案。任何帮助都将不胜感激。
暂无答案!
目前还没有任何答案,快来回答吧!