c_cpp 迭代DFS

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 迭代DFS相关的知识,希望对你有一定的参考价值。

//https://www.geeksforgeeks.org/iterative-depth-first-traversal/
#include <iostream>
using namespace std;

int main() {
    int n,m,x,y;
    cin>>n>>m;

    int g[n][n]= {0};
    for (int i=0;i<m;i++) {
        cin>> x>>y;
        g[x][y]=1;
    }
    bool visited[n]= {0};
    int dfs[n], stk[n], top=0;
    stk[top]= 0;
    x= 1;
    y=0;
    while (x++<=n) {
        int s= stk[top--];
        visited[s]= 1;
        dfs[y++]= s;
        for (int j=m-1; j>=0; j--){
            if (visited[j]==0 && g[s][j]==1) {
                stk[++top]=j;
            }
        }
    }
    for (int i=0; i<n; i++)
        cout<< dfs[i]<< " ";
}

以上是关于c_cpp 迭代DFS的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp DFS

c_cpp DFS

c_cpp 图表的DFS

c_cpp DFS

c_cpp 克隆图dfs

c_cpp [dfs] [string]回文分区