Bug In isConnected方法用于图形

时间:2015-12-08 00:25:47

标签: java recursion graph

我正在尝试构建一个返回布尔响应的方法,以验证我的图是否已连接。该图由顶点组成,并包含称为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还是理论上应该有效?

0 个答案:

没有答案