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会工作吗?