-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgraph_algorithms.java
More file actions
66 lines (55 loc) · 1.56 KB
/
graph_algorithms.java
File metadata and controls
66 lines (55 loc) · 1.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import java.io.*;
import java.util.*;
class GFG {
private int v;
private LinkedList<Integer> adj[];
GFG(int v){
adj = new LinkedList[v];
for(int i = 0; i < adj.length; i++){
adj[i] = new LinkedList();
}
this.v = v;
}
void addEdge(int v, int w){
adj[v].add(w);
}
void BFS(int s){
HashMap visited = new HashMap(v);
LinkedList<Integer> queque = new LinkedList<Integer>();
queque.add(s);
visited.put(s, true);
// System.out.println(queque);
while(!queque.isEmpty()){
int c = queque.poll();
System.out.print(c + " ");
adj[c].stream().forEach(v -> {if (visited.get(v) == null) { queque.add(v); visited.put(v, true); } });
}
}
void DFSutil(int s, HashMap visited){
visited.put(s, true);
System.out.print(s + " ");
adj[s].stream().forEach(v -> { if(visited.get(v) == null) { DFSutil(v, visited); } });
}
void DFS(int s){
HashMap visited = new HashMap(v);
DFSutil(s, visited);
}
public static void main (String[] args) {
GFG g = new GFG(8);
g.addEdge(1, 2);
g.addEdge(1, 3);
g.addEdge(2, 1);
g.addEdge(2, 4);
g.addEdge(2, 5);
g.addEdge(3, 1);
g.addEdge(3, 6);
g.addEdge(3, 7);
g.addEdge(4, 2);
g.addEdge(5, 2);
g.addEdge(6, 3);
g.addEdge(7, 3);
System.out.print("Deep first search: "); g.DFS(1);
System.out.println();
System.out.print("Breadth first search: "); g.BFS(1);
}
}