我正在尝试使用JGraphT来检查图是否是欧拉。我看到函数isEulerian()
已经给出了。我正在使用JGraphTs演示中的UndirectedGraph
,所以我确信这部分代码是正确的。更重要的是,我已经检查过这个函数返回布尔值。不过,我收到一个错误。怎么了?
另外我看到isEulerian()
是静态的,所以我不需要这个类的对象来使用该函数。
有用的链接:http://jgrapht.org/javadoc/org/jgrapht/alg/EulerianCircuit.html
package org.jgrapht.alg;
import java.util.List;
import org.jgrapht.alg.*;
import org.jgrapht.*;
import org.jgrapht.graph.*;
public class testowa{
public static void main(String args[]) {
UndirectedGraph<String, DefaultEdge> stringGraph = createStringGraph();
// note undirected edges are printed as: {<v1>,<v2>}
System.out.println(stringGraph.toString());
boolean check = isEulerian(stringGraph);
}
private static UndirectedGraph<String, DefaultEdge> createStringGraph()
{
UndirectedGraph<String, DefaultEdge> g =
new SimpleGraph<String, DefaultEdge>(DefaultEdge.class);
String v1 = "v1";
String v2 = "v2";
String v3 = "v3";
String v4 = "v4";
// add the vertices
g.addVertex(v1);
g.addVertex(v2);
g.addVertex(v3);
g.addVertex(v4);
// add edges to create a circuit
g.addEdge(v1, v2);
g.addEdge(v2, v3);
g.addEdge(v3, v4);
g.addEdge(v4, v1);
return g;
}
}
我一直收到的错误:
testowa.java:14: error: cannot find symbol
boolean check = isEulerian(stringGraph);
^
symbol: method isEulerian(UndirectedGraph<String,DefaultEdge>)
location: class testowa
1 error
答案 0 :(得分:1)
您尚未定义任何名为isEulerian();
根据文档docs
你必须传递一些参数。
public static <V,E> boolean isEulerian(UndirectedGraph<V,E> g)
此方法将检查传入的图形是否为欧拉。
此外,您需要导入类EulerianCircuit
。然后,您可以使用EulerianCircuit.isEulerian(stringGraph)