Skip to content

Commit dc34d7a

Browse files
authored
Create DFS STL algorithom
1 parent 616696e commit dc34d7a

File tree

1 file changed

+116
-0
lines changed

1 file changed

+116
-0
lines changed

DFS STL algorithom

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
/*
2+
its my first dfs code so forgive me if i do wrong anything in my code...
3+
*/
4+
5+
/*
6+
Author: Fuadul Hasan([email protected])
7+
BSMRSTU,Gopalganj
8+
*/
9+
10+
#include <iostream>
11+
#include <cstdio>
12+
#include <cstdlib>
13+
#include <algorithm>
14+
#include <cmath>
15+
#include <vector>
16+
#include <set>
17+
#include <map>
18+
#include <unordered_set>
19+
#include <unordered_map>
20+
#include <queue>
21+
#include <ctime>
22+
#include <cassert>
23+
#include <complex>
24+
#include <string>
25+
#include <cstring>
26+
#include <chrono>
27+
#include <random>
28+
#include <queue>
29+
#include <bitset>
30+
//#include<bits/stdc++.h>
31+
using namespace std;
32+
33+
int cinn() {int x; scanf("%d", &x); return x;}
34+
long long scll() {long long x; scanf("%lld", &x); return x;}
35+
double scd() {double x; scanf("%lf", &x); return x;}
36+
void coutt(int x) {printf("%d ", x);}
37+
38+
#define scll scll()
39+
#define gcd(a,b) __gcd(a,b)
40+
#define lcm(a,b) (a*b)/gcd(a,b)
41+
#define PI acos(-1.0)
42+
#define vi std::vector<int>
43+
#define vll std::vector<ll>
44+
#define vit vector<int> :: iterator
45+
#define sit set<int> :: iterator
46+
#define mpsi std::map<string, int>
47+
#define pb push_back
48+
#define ll long long int
49+
#define ld long double
50+
#define ull unsigned long long int
51+
#define min3(a,b,c) min(a,min(b,c))
52+
#define min4(a,b,c,d) min(d,min(a,min(b,c)))
53+
#define max3(a,b,c) max(a,max(b,c))
54+
#define max4(a,b,c,d) max(d,max(a,max(b,c)))
55+
#define nl printf("\n");
56+
#define no printf("No");
57+
#define yes printf("Yes");
58+
#define F first
59+
#define S second
60+
61+
typedef pair<int,int> ii;
62+
typedef std::vector<ii> vii;
63+
64+
const int mod = 1e9 + 7;
65+
const int inf = (int)2e9 + 5;
66+
const ll Inf = (ll)1e18 + 5;
67+
const int N = 1e6 + 5;
68+
const int nn = 4e5 + 5;
69+
70+
71+
vector<vector<int>>adj;
72+
int n; //number of vertex
73+
vector<bool>visited;
74+
75+
void dfs(int v)
76+
{
77+
cout<<v<<" ";
78+
visited[v] = true;
79+
for(auto u: adj[v]){
80+
if(!visited[u]){
81+
dfs(u);
82+
}
83+
}
84+
}
85+
86+
int solve()
87+
{
88+
int n,e;
89+
cin>>n>>e;
90+
visited.assign(n,false);
91+
adj.assign(n,vector<int>());
92+
for(int i=0;i<e;i++){
93+
int a,b;
94+
cin>>a>>b;
95+
adj[a].pb(b);
96+
}
97+
for(int i=1;i<n;i++){
98+
if(!(visited[i])){
99+
dfs(i);
100+
}
101+
}
102+
}
103+
104+
int main()
105+
{
106+
int test = 1, tc = 0;
107+
//scanf("%d", &test);
108+
// (void)getchar();
109+
//cin >> test;
110+
while (test--) {
111+
//printf("Case %d: ", ++tc);
112+
solve();
113+
}
114+
115+
return 0;
116+
}

0 commit comments

Comments
 (0)