I'm trying to count the number of connected graphs but it's not working in my code. Does anyone know what's wrong with my code?
public int minNumAssistanceCars() {
// Add your code here to compute and return the minimum number of assistance cars required for this map
ArrayList<Vertex> roads_edges = new ArrayList<Vertex>();
int counter = 0;
Set<Vertex> visited = new HashSet<Vertex>();
for (Vertex vertex : places) {
if (!visited.contains(vertex.getIndex())) {
counter++;
DFS(vertex, roads_edges);
}
}
return counter;
}
private void DFS(Vertex startVertex, ArrayList<Vertex> pathedges) {
Set<Vertex> visited = new HashSet<Vertex>();
visited.add(startVertex.getIndex());
ArrayList<Edge> adjacent_nodes = startVertex.getIncidentRoads();
for (Edge edge : adjacent_nodes) {
Vertex added_nodes = edge.getFirstVertex().getIndex() != startVertex.getIndex()
? edge.getFirstVertex()
: edge.getSecondVertex();
if (!visited.contains(added_nodes.getIndex())) {
pathedges.add(added_nodes);
}
}
for (Vertex vertex : pathedges) {
if (!visited.contains(vertex.getIndex())) {
DFS(vertex, pathedges);
}
}
return 0;
}