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