您好,选择的代码有问题。谁能告诉我找出粗体部分无法正常工作的原因吗?
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**
}
您正在构造函数中定义与类变量同名的局部变量“ 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
}
}