我的图形代码不是 运行 也没有抛出任何错误?
My graph code not running and neither throwing any error?
我正在尝试实现一个图表。我无法理解为什么我的代码不起作用。我试着看看哪里出错了,但无法弄清楚,我的 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
class 有一个名为 V
的字段。还有一个参数 int V
由您的构造函数接收。它们不是同一个变量。除非您初始化字段 V
,否则它将为零。
所以这个循环
for(int i=0 ; i<graph.V ; i++)
立即退出。
在构造函数中将字段 V
设置为接收变量 V
的方法是添加
this.V = V;
在你的构造函数中。
您需要打印一整行来管理 y 轴并通过 adjList 中的元素数量限制 i:
public void printGraph(Main graph) {
for(int i=0 ; i<graph.adjList.length ; i++) {
for(Integer pCrawl : graph.adjList[i]){
System.out.print(pCrawl+" ");
}
System.out.println("");
}
}
这将输出以下内容:
1 2
2
0 3
3
如果你想旋转它,你只需要改变添加参数:)
您需要在构造函数中初始化 V
,如:this.V = V;
。另一件事是方法 printGraph
不需要接收 Graph 变量,你可以这样写:
public void printGraph() {
for(int i=0 ; i<V ; i++)
for(Integer pCrawl : adjList[i])
System.out.print(pCrawl+" ");
}
我正在尝试实现一个图表。我无法理解为什么我的代码不起作用。我试着看看哪里出错了,但无法弄清楚,我的 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
class 有一个名为 V
的字段。还有一个参数 int V
由您的构造函数接收。它们不是同一个变量。除非您初始化字段 V
,否则它将为零。
所以这个循环
for(int i=0 ; i<graph.V ; i++)
立即退出。
在构造函数中将字段 V
设置为接收变量 V
的方法是添加
this.V = V;
在你的构造函数中。
您需要打印一整行来管理 y 轴并通过 adjList 中的元素数量限制 i:
public void printGraph(Main graph) {
for(int i=0 ; i<graph.adjList.length ; i++) {
for(Integer pCrawl : graph.adjList[i]){
System.out.print(pCrawl+" ");
}
System.out.println("");
}
}
这将输出以下内容:
1 2
2
0 3
3
如果你想旋转它,你只需要改变添加参数:)
您需要在构造函数中初始化 V
,如:this.V = V;
。另一件事是方法 printGraph
不需要接收 Graph 变量,你可以这样写:
public void printGraph() {
for(int i=0 ; i<V ; i++)
for(Integer pCrawl : adjList[i])
System.out.print(pCrawl+" ");
}