diff --git a/algorithms/cpp/DFS.cpp b/algorithms/cpp/DFS.cpp new file mode 100644 index 0000000..f077d93 --- /dev/null +++ b/algorithms/cpp/DFS.cpp @@ -0,0 +1,46 @@ +#include +#include +#include + +using namespace std; + +int main() +{ + int ver = 7; + vector> adj(ver); + + // Adding edges + adj[0].push_back(1); + adj[0].push_back(2); + adj[1].push_back(3); + adj[1].push_back(4); + adj[2].push_back(5); + adj[2].push_back(6); + + cout << "Depth-First Traversal (starting from vertex 0): "; + + int str = 0; + vector vis(ver, false); + stack stack; + + vis[str] = true; + stack.push(str); + + while (!stack.empty()) + { + int vertex = stack.top(); + cout << vertex << " "; + stack.pop(); + + for (int m : adj[vertex]) + { + if (!vis[m]) + { + vis[m] = true; + stack.push(m); + } + } + } + + return 0; +}