-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGraphUsingHashmap.java
More file actions
57 lines (47 loc) · 1.66 KB
/
Copy pathGraphUsingHashmap.java
File metadata and controls
57 lines (47 loc) · 1.66 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
import java.util.HashMap;
import java.util.Map;
class Vertex {
HashMap<Integer, Integer> neighbours = new HashMap<>();
}
public class GraphUsingHashmap {
HashMap<Integer, Vertex> vertices = new HashMap<>();
void addVertex(int v) {
Vertex vertex = new Vertex();
vertices.put(v, vertex);
}
boolean isEdgeExist(int firstVertex, int secondVertex) {
Vertex first = vertices.get(firstVertex);
Vertex second = vertices.get(secondVertex);
if(first == null || second == null || !first.neighbours.containsKey(secondVertex)) {
return false;
}
return true;
}
void addEdge(int firstVertex, int secondVertex, int weight) {
if(isEdgeExist(firstVertex, secondVertex)) {
System.err.println("Edge Already Present...");
return;
}
Vertex first = vertices.get(firstVertex);
Vertex second = vertices.get(secondVertex);
first.neighbours.put(secondVertex, weight);
second.neighbours.put(firstVertex, weight);
}
void print() {
for(Map.Entry<Integer, Vertex> currentVertex : vertices.entrySet()) {
System.out.println(currentVertex.getKey() + " => " + currentVertex.getValue().neighbours);
}
}
public static void main(String[] args) {
GraphUsingHashmap obj = new GraphUsingHashmap();
obj.addVertex(1);
obj.addVertex(2);
obj.addVertex(3);
obj.addVertex(4);
obj.addEdge(1, 2, 0);
obj.addEdge(2, 3, 0);
obj.addEdge(3, 4, 0);
obj.addEdge(1, 4, 0);
obj.print();
}
}