加权有向图添加了不起作用的边

问题描述 投票:2回答:1

您好,选择的代码有问题。谁能告诉我找出粗体部分无法正常工作的原因吗?

    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**
    }
java graph weighted edge
1个回答
0
投票

您正在构造函数中定义与类变量同名的局部变量“ adjacencyList”。局部变量将覆盖类变量,并且类变量保持为空。

public class Graph {

    private LinkedList<Edge> [] adjacencylist;

    Graph(int vertices) {
        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(String source, String destination, int weight) {
        Edge edge = new Edge(source, destination, weight);
        adjacencylist[source].addFirst(edge); //for directed graph
    }

}
© www.soinside.com 2019 - 2024. All rights reserved.