Skip to content

Commit 75d09ed

Browse files
authored
Merge pull request ephremdeme#152 from nikunjagarwal321/add-dfs
Added dfs in cpp
2 parents 51ee18c + 21d1e64 commit 75d09ed

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

graphs/dfs.cpp

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#include<bits/stdc++.h>
2+
using namespace std;
3+
4+
void dfsUtil(int currentNode, vector< vector<int> > &adj, vector<bool> &visited) {
5+
visited[currentNode] = true;
6+
cout << currentNode << " ";
7+
for(int i = 0; i < adj[currentNode].size(); i++) {
8+
int neighbour = adj[currentNode][i];
9+
if(!visited[neighbour])
10+
dfsUtil(neighbour, adj, visited);
11+
}
12+
return;
13+
}
14+
15+
void dfs(int nodes, vector< vector<int> > &adj) {
16+
vector<bool> visited(nodes+1, false);
17+
for(int i = 1; i <= nodes; i++) {
18+
if(!visited[i])
19+
dfsUtil(i, adj, visited);
20+
}
21+
return;
22+
}
23+
24+
25+
int main() {
26+
int nodes, edges, x, y;
27+
cout << "Input number of nodes and edges: ";
28+
cin >> nodes >> edges;
29+
cout << "Input edges: \n";
30+
vector< vector<int> > adj(nodes+1);
31+
for(int i = 1; i <= edges; i++) {
32+
cin >> x >> y;
33+
adj[x].push_back(y);
34+
adj[y].push_back(x);
35+
}
36+
dfs(nodes, adj);
37+
return 0;
38+
}

0 commit comments

Comments
 (0)