DFS图搜索Java

时间:2017-06-03 04:45:39

标签: java graph dfs

我一直试图将Graph的DFS搜索作为我项目的一部分来实现,但我一直在努力弄清楚递归是如何工作的......我认为我的代码是正确的,但结果显示不然。

public void RecursionHelper(HashSet seen2, int startVertex2, LinkedStack components2, boolean[] alert2){

    seen2.add(startVertex2);
    for(int i = 0; i < matrix.get(startVertex2).size() ; i++){
        boolean b = helper(matrix.get(startVertex2), i);

        if(matrix.get(startVertex2).get(i) !=0 && !seen2.contains(i)){
            int p = i;
            RecursionHelper(seen2, i , components2, alert2);
            if(b = true && alert2[startVertex2] == false){
                components2.push(startVertex2);
                alert2[startVertex2]= true;
            }

        }
        else if(b = true && alert2[startVertex2] == false){
            components2.push(startVertex2);
            alert2[startVertex2]= true;
        }

    }
}

这是我的帮助器方法,用于告知当前索引是否是ArrayList中最后一个索引

public boolean helper(ArrayList<Integer> k, int o){
    boolean last = false;
    int capture = 0; //the index of the last connection in the arraylist
    if(k.size() == 1){
        return true;
    }

    for(int i = k.size() -1 ; i > 0; i--){
        if(k.get(i) == 1){
            capture = i;
        }
    }
    if
    ( o  == capture){
        last = true;

    }
    return last;
}

矩阵是一个2D arraylist,我用它作为邻接矩阵来显示图形。

0 个答案:

没有答案