Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 添加不工作边的加权有向图_Java_Graph_Graph Theory_Weighted_Weighted Graph - Fatal编程技术网

Java 添加不工作边的加权有向图

Java 添加不工作边的加权有向图,java,graph,graph-theory,weighted,weighted-graph,Java,Graph,Graph Theory,Weighted,Weighted Graph,嗨,我对所选代码有问题。 有人能告诉我为什么粗体部分不起作用吗 Graph(int vertices) { int vertices; LinkedList<Edge> [] adjacencylist; this.vertices = vertices; adjacencylist = new LinkedList[vertices]; //initialize adjacency lists

嗨,我对所选代码有问题。 有人能告诉我为什么粗体部分不起作用吗

    Graph(int vertices) {
        int vertices;
        LinkedList<Edge> [] adjacencylist;

        this.vertices = vertices;
        adjacencylist = new LinkedList[vertices];
        //initialize adjacency lists for all the vertices
        for (int i = 0; i < vertices ; i++) {
            adjacencylist[i] = new LinkedList<>();
        }
    }

    public void addEgde(String source, String destination, int weight) {
        Edge edge = new Edge(source, destination, weight);
        **adjacencylist[source].addFirst(edge); //for directed graph**
    }
图形(int顶点){
int顶点;
LinkedList[]邻接列表;
这个。顶点=顶点;
adjacencylist=新链接列表[顶点];
//初始化所有顶点的邻接列表
对于(int i=0;i<顶点;i++){
adjacencylist[i]=新链接列表();
}
}
public void addEgde(字符串源、字符串目标、整数权重){
边缘=新边缘(源、目标、权重);
**adjacencylist[source].addFirst(edge);//用于有向图**
}

您正在构造函数中定义一个与类变量同名的局部变量“adjacencyList”。局部变量覆盖类变量,且类变量保持为null。此外,源参数不能用作数组的索引。它必须是一个整数

public class Graph {

    int vertices;
    private LinkedList<Edge> [] adjacencylist;

    Graph(int vertices) {

        this.vertices = vertices;
        adjacencylist = new LinkedList[vertices];
        //initialize adjacency lists for all the vertices
        for (int i = 0; i < vertices ; i++) {
            adjacencylist[i] = new LinkedList<>();
        }
    }

    public void addEgde(int source, String destination, int weight) {
        Edge edge = new Edge(source, destination, weight);
        adjacencylist[source].addFirst(edge); //for directed graph
    }

}
公共类图{
int顶点;
私有链接列表[]邻接列表;
图(整数顶点){
这个。顶点=顶点;
adjacencylist=新链接列表[顶点];
//初始化所有顶点的邻接列表
对于(int i=0;i<顶点;i++){
adjacencylist[i]=新链接列表();
}
}
public void addEgde(整数源、字符串目标、整数权重){
边缘=新边缘(源、目标、权重);
adjacencylist[source].addFirst(edge);//用于有向图
}
}

您是否有两个变量
邻接列表
,一个在类中,一个在构造函数的作用域中?变量顶点和邻接列表在一个名为“Graph”的静态类中声明,该类就在我发布的代码清单之前Java中没有所谓的
静态类
。通过我的评论,我希望让你自己意识到你的错误,如果答案是“是”,那么任何数组都是由整数索引的。在addEgde方法中使用字符串作为索引。如果我需要源是字符串而不是int,那么解决方案是什么?parseInt会工作吗?