有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用迭代dfs在图中查找桥?

我需要在具有迭代dfs的图中找到桥 代码是递归的,我不知道如何将其转换为迭代的dfs

void bridgeUtil(int u, boolean visited[], int disc[], int low[], int parent[])
{

    visited[u] = true;

    disc[u] = low[u] = ++time;

    Iterator<Integer> i = adj_sub[u].iterator();
    while (i.hasNext())
    {
        int v = i.next();

        if (!visited[v])
        {
            parent[v] = u;
            bridgeUtil(v, visited, disc, low, parent);

            low[u]  = Math.min(low[u], low[v]);

            if (low[v] > disc[u]) {
                System.out.print(u);
                System.out.print(" ");
                System.out.println(v);
            }
        }
        else if (v != parent[u]) {
            low[u] = Math.min(low[u], disc[v]);
        }
    }

}
void bridge()
{
    boolean visited[] = new boolean[V];
    int disc[] = new int[V];
    int low[] = new int[V];
    int parent[] = new int[V];


    for (int i = 0; i < V; i++)
    {
        parent[i] = NIL;
        visited[i] = false;
    }
    for (int i = 0; i < V; i++)
        if (visited[i] == false) {
            bridgeUtil(i, visited, disc, low, parent);
            //DFS_sub(i, visited, disc, low, parent);
        }

}

共 (0) 个答案