c_cpp DFS

Posted

tags:

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

#include <iostream>
using namespace std;

class graph {
    int v;
    int **adj;
public:
    graph (int v) {
        this->v= v;
        adj= new int*[v];
        for (int i=0; i<v; i++)
            adj[i]= new int [v];
        for (int i=0; i<v; i++)
            for (int j=0; j<v; j++)
                adj[i][j]= 0;
    }
    void addEdge (int u, int w) {
        adj[u][w]= 1;
    }
    void dfs (int , bool []);
};
void graph::dfs(int s, bool visited[]) {
    visited[s]= 1;
    cout<< s << " ";
    for (int j=0; j<v; j++)
        if (!visited[j] && adj[s][j]==1)
            dfs(j, visited);
}
int main() {
    graph g(9);
    g.addEdge(0,1);
    g.addEdge(0,3);
    g.addEdge(1,2);
    g.addEdge(1,5);
    g.addEdge(2,4);
    g.addEdge(2,3);
    g.addEdge(3,6);
    g.addEdge(3,7);
    g.addEdge(6,8);

    bool visited[9]= {0};
    g.dfs(0, visited);
}

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

c_cpp DFS

c_cpp 图表的DFS

c_cpp DFS

c_cpp 克隆图dfs

c_cpp [dfs] [string]回文分区

c_cpp [graph] [dfs]拓扑排序图