我正在尝试构建一个返回布尔响应的方法,以验证我的图是否已连接。该图由顶点组成,并包含称为vertexList的所有顶点的arraylist。每个顶点最多可以有4条边。要返回所有边的arraylist,请使用getNeighbors()方法:
public boolean isConnected(){
this.unmarkAllVertices();
Vertex rootV = this.vertexList.get(0);
visit(rootV);
int unmarkedVertices = 0;
for (Vertex element : this.vertexList) {
if (element.getMarked() == false) {
unmarkedVertices++;
}
}
if (unmarkedVertices > 0) {
return false;
} else {
return true;
}
}
private void visit(Vertex v) {
if (v.getMarked() == true) {
return;
} else {
v.setMarked(true);
for (Vertex n : v.getNeighbors()) {
if (n != null) {
visit(n);
}
}
}
}
你能找到这个bug还是理论上应该有效?