У меня проблемы с компиляцией этого кода теории графов в хакерранке, похоже, он работает в другом месте, я не знаю, как это исправить. Мне нужно выяснить, все ли вершины графа связаны или нет. Если это так, я хочу напечатать 1, если не 0. Я застрял на этой ошибке и, кажется, не могу найти, как ее решить. Я был бы очень рад, если бы кто-нибудь мог мне с этим помочь.
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
import java.util.LinkedList;
public class Solution {
class CheckUndirectedDisconnectedGraph {
class Graph{
int vertices;
LinkedList<Integer> adjList [];
public Graph(int vertices){
this.vertices = vertices;
adjList = new LinkedList[vertices];
for (int i = 0; i <vertices ; i++) {
adjList[i] = new LinkedList<>();
}
}
public void addEdge(int source, int destination){
adjList[source].addFirst(destination);
adjList[destination].addFirst(source);
}
}
public void isConnected(Graph graph){
int vertices = graph.vertices;
LinkedList<Integer> adjList [] = graph.adjList;
boolean[] visited = new boolean[vertices];
DFS(0, adjList, visited);
int count = 0;
for (int i = 0; i <visited.length ; i++) {
if(visited[i])
count++;
}
if(vertices==count){
System.out.println(1);
}else{
System.out.println(0);
}
}
public void DFS(int source, LinkedList<Integer> adjList [], boolean[] visited){
visited[source] = true;
for (int i = 0; i <adjList[source].size() ; i++) {
int neighbor = adjList[source].get(i);
if(visited[neighbor]==false){
DFS(neighbor, adjList, visited);
}
}
}
public static void main(String[] args) {
Graph graph = new Graph(6);
graph.addEdge(5,4);
graph.addEdge(1,2);
graph.addEdge(1,3);
graph.addEdge(2,4);
graph.addEdge(3,4);
CheckUndirectedDisconnectedGraph c = new CheckUndirectedDisconnectedGraph();
c.isConnected(graph);
}
}
}
Вывод ошибок:
Solution.java:62: error: non-static variable this cannot be referenced from a static context Graph graph = new Graph(6); Solution.java:69: error: non-static variable this cannot be referenced from a static context CheckUndirectedDisconnectedGraph c = new CheckUndirectedDisconnectedGraph(); ^ Solution.java:61: error: Illegal static declaration in inner class Solution.CheckUndirectedDisconnectedGraph public static void main(String[] args) { modifier 'static' is only allowed in constant variable declarations