【问题标题】:Why is isEulerian() in JGraphT an undefined symbol for me?为什么 JGraphT 中的 isEulerian() 对我来说是一个未定义的符号?
【发布时间】:2016-03-12 00:43:35
【问题描述】:

我正在尝试使用 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

【问题讨论】:

    标签: java graph jgrapht


    【解决方案1】:

    你还没有定义任何名为isEulerian();的方法

    根据文档docs

    你必须传递一些参数。

    public static &lt;V,E&gt; boolean isEulerian(UndirectedGraph&lt;V,E&gt; g) 该方法会检查传入的图是否为欧拉图。

    另外,您需要导入 类EulerianCircuit。然后你可以使用EulerianCircuit.isEulerian(stringGraph)

    【讨论】:

    • 我知道 isEulerian 将检查图形是否为欧拉。我不知道我为什么要取消它?我想使用我添加的 JGraphT 库中的这个函数。
    • 您在我回答后编辑了您的问题。现在会出现什么问题?你能详细说明一下吗
    • 像这样调用方法 EulerianCircuit.isEulerian(stringGraph)
    • 同理。我写了 boolean check = isEulerian(stringGraph);我已经更新了错误,但我不知道如何更正错误。
    • 检查编辑的答案。你必须导入类 EulerianCircuit
    猜你喜欢
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多