diff --git a/CPP/algorithms/DFS/DFS.cpp b/CPP/algorithms/DFS/DFS.cpp new file mode 100644 index 0000000..b664a2f --- /dev/null +++ b/CPP/algorithms/DFS/DFS.cpp @@ -0,0 +1,37 @@ +#include +#include + +using namespace std; + +vector > g; +int nodes, edges; +vector visited; + +void dfs(int src, int parent) { + for(auto i: g[src]) { + if(i == parent || visited[i]) continue; + cout << "traversing from " << src << " to " << i << endl; + dfs(i, src); + } +} + +int main() { + cout << "enter number of nodes & edges: "; + cin >> nodes >> edges; + g.resize(nodes+1); + visited.resize(nodes+1, 0); + cout << "Enter edge pairs: "; + for(int i=0;i> x >> y; + g[x].push_back(y); + g[y].push_back(x); + } + for(int i=1;i<=nodes;++i) { + if(!visited[i]) { + dfs(i, i); + } + } + + return 0; +} \ No newline at end of file