From e087cc1ce7f590c9073055cb0f08ee03bb0c0e47 Mon Sep 17 00:00:00 2001 From: Prateek Date: Sat, 2 Oct 2021 19:44:31 +0530 Subject: [PATCH] add: dfs algorithm --- depth_first_search.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 depth_first_search.cpp diff --git a/depth_first_search.cpp b/depth_first_search.cpp new file mode 100644 index 0000000..b62285a --- /dev/null +++ b/depth_first_search.cpp @@ -0,0 +1,40 @@ +#include +using namespace std; + +class Graph +{ +public: + map visited; + map> adj; + void addEdge(int v, int w); + void DFS(int v); +}; + +void Graph::addEdge(int v, int w) +{ + adj[v].push_back(w); +} + +void Graph::DFS(int v) +{ + visited[v] = true; + cout << v << " "; + list::iterator i; + for (i = adj[v].begin(); i != adj[v].end(); ++i) + if (!visited[*i]) + DFS(*i); +} + +int main() +{ + Graph g; + g.addEdge(0, 1); + g.addEdge(0, 2); + g.addEdge(1, 2); + g.addEdge(2, 0); + g.addEdge(2, 3); + g.addEdge(3, 3); + cout << "Following is Depth First Traversal"<<" (starting from vertex 2) \n"; + g.DFS(2); + return 0; +} \ No newline at end of file