Skip to content

Commit d1bad3e

Browse files
authored
Add files via upload
1 parent 3d73db9 commit d1bad3e

File tree

1 file changed

+94
-0
lines changed

1 file changed

+94
-0
lines changed

PracticeDfs.java

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
package PracticeGraphs;
2+
3+
import java.util.ArrayList;
4+
import java.util.LinkedList;
5+
import java.util.Queue;
6+
import java.util.Scanner;
7+
8+
public class PracticeDfs {
9+
10+
ArrayList<ArrayList<Integer>> adj;
11+
12+
public PracticeDfs(int n ){
13+
adj = new ArrayList<>();
14+
15+
for(int i = 0; i <= n; i++){
16+
adj.add(new ArrayList<>());
17+
}
18+
}
19+
20+
public void addEdge(int src , int dest){
21+
adj.get(src).add(dest);
22+
}
23+
24+
public void dfs(int node, ArrayList<ArrayList<Integer>> adj , boolean vis[],ArrayList<Integer> ans){
25+
vis[node] = true;
26+
ans.add(node);
27+
28+
for(int it : adj.get(node)){
29+
if(!vis[it]){
30+
dfs(it, adj, vis,ans);
31+
}
32+
}
33+
}
34+
35+
public void bfs(ArrayList<ArrayList<Integer>> adj , boolean vis[]){
36+
37+
Queue<Integer> q = new LinkedList<>();
38+
q.offer(1);
39+
vis[1] = true;
40+
41+
while(!q.isEmpty()){
42+
int node = q.poll();
43+
System.out.println(node);
44+
45+
46+
47+
for(int it :adj.get(node)){
48+
if(!vis[it]){
49+
vis[it] = true;
50+
q.offer(it);
51+
}
52+
}
53+
}
54+
55+
}
56+
57+
58+
public static void main(String[] args) {
59+
60+
Scanner sc = new Scanner(System.in);
61+
62+
int n = sc.nextInt();
63+
int m = sc.nextInt();
64+
65+
PracticeDfs p = new PracticeDfs(n);
66+
67+
68+
for(int i = 0; i < m; i++){
69+
int src = sc.nextInt();
70+
int dest = sc.nextInt();
71+
p.addEdge(src - 1, dest - 1);
72+
}
73+
74+
boolean vis[] = new boolean[n + 1];
75+
ArrayList<Integer> ans = new ArrayList<>();
76+
77+
for(int i = 1; i <= n; i++){
78+
if(!vis[i]){
79+
p.dfs(i , p.adj , vis,ans);
80+
}
81+
}
82+
83+
for(int i = 0; i < ans.size(); i++){
84+
System.out.println(ans.get(i));
85+
}
86+
87+
vis = new boolean[n + 1];
88+
for(int i = 1; i <= n; i++){
89+
if(!vis[i]){
90+
p.bfs(p.adj , vis);
91+
}
92+
}
93+
}
94+
}

0 commit comments

Comments
 (0)