我正在尝试实现一个图表。我无法理解为什么我的代码不起作用。我试图看看哪里出了问题,但无法弄清楚,而且我的IDE也没有给出任何错误。 我是初学者,有人可以告诉我我在哪里以及为什么吗? 我在下面发布我的代码。
import java.util.*;
class Graph {
private int V;
private LinkedList<Integer>[] adjList ;
Graph(int V) {
adjList = new LinkedList[V];
for(int i=0 ; i<V ; i++) {
adjList[i] = new LinkedList<Integer>();
}
}
public void addEdge(int v, int w) {
adjList[v].add(w);
}
public void printGraph(Graph graph) {
for(int i=0 ; i<graph.V ; i++) {
for(Integer pCrawl : graph.adjList[i]){
System.out.print(pCrawl+" ");
}
}
}
public static void main(String[] args) {
Graph g = new Graph(4);
g.addEdge(0, 1);
g.addEdge(0, 2);
g.addEdge(1, 2);
g.addEdge(2, 0);
g.addEdge(2, 3);
g.addEdge(3, 3);
g.printGraph(g);
}
}
最佳答案
您的Graph
类有一个名为V
的字段。还有一个由构造函数接收的参数int V
。它们不是同一个变量。除非您初始化字段 V
,否则它将为零。
所以这个循环
for(int i=0 ; i<graph.V ; i++)
立即退出。
将字段 V
设置为构造函数中接收到的变量 V
的方法是添加
this.V = V;
在你的构造函数中。
关于java - 我的图形代码没有运行并且没有抛出任何错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58040269/