【发布时间】:2014-03-11 20:58:51
【问题描述】:
所以,我开始了这个问题,我必须带着卷心菜、狼和山羊过河,而不是将卷心菜和山羊或狼和山羊单独放在同一侧。
我开始对如何处理这个问题感到非常困惑。基本上,我正在考虑添加一堆会导致正确结果的顶点,并且只需让程序演示广度优先和深度优先搜索,而无需复杂的顶点生成过程。我是否正确地考虑了这一点,还是有更好的方法?
这是我到目前为止的主要方法的代码。
package project3;
import java.util.*;
import java.io.*;
public class Project3 extends Network{
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new Project3().run();
} //main method
public void run()
{
String start ="fwgcR",
finish = "Rfwgc";
addVertex(start);
addVertex("fwgRc");
addVertex("fwcRg");
addVertex(finish);
//Breadth First iterator
Iterator<String> itr = network.breadthFirstIterator (start);
while (itr.hasNext())
System.out.print (itr.next() + " ");
//Depth First Iterator
itr = network.depthFirstIterator (start);
while (itr.hasNext())
System.out.print (itr.next() + " ");
} // method run
}
【问题讨论】:
-
这真的不是 Java 问题,而是找出算法的问题。我添加了一些标签。
-
抱歉,谢谢!
标签: java algorithm depth-first-search breadth-first-search river-crossing-puzzle