-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAdjSet7767.java
More file actions
76 lines (53 loc) · 2.03 KB
/
AdjSet7767.java
File metadata and controls
76 lines (53 loc) · 2.03 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
67
68
69
70
71
72
73
74
75
76
//JAITLY AKSHAY cs610 7767 prp
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Collections;
import java.util.Set;
interface Graph7767{
void addEdge(int v0, int v1);
List<Integer>getVertices_Adj(int v);//We are defining interface graph here
}
class AdjSet7767 implements Graph7767 {
List<Node7767> verticeList = new ArrayList<>();
private int NumVertices = 0;//Defining Class and methods for AdjacencySet
public AdjSet7767(int NumVertices) {
this.NumVertices = NumVertices;
for (int i = 0; i < NumVertices; i++) {
verticeList.add(new Node7767(i));//We are creating AdjacencySet here
}
}
public void addEdge(int v0, int v1) {
if (v0 >= NumVertices || v0 < 0 || v1 >= NumVertices || v1 < 0) {
throw new IllegalArgumentException("Vertex number does not exist: " + v0 + ", " + v1);
}
verticeList.get(v0).addEdge(v1);//An Edge is added to the Adjacency Set
}
public List<Integer> getVertices_Adj(int v) {
if (v >= NumVertices || v < 0) {
throw new IllegalArgumentException("Vertex number does not exist: " + v);
}
return verticeList.get(v).getVertices_Adj();//A list of Edges is created and Adjacent vertices are added
}
public int getVertexNum(int v){
return verticeList.get(v).getNodeNumber();//We are getting vertex Number
}
class Node7767 {
private int NodeNumber;
private Set<Integer> adjacencySet = new HashSet<>();
public Node7767(int NodeNumber) {
this.NodeNumber = NodeNumber;//A Node is created
}
public int getNodeNumber() {
return NodeNumber;
}
public void addEdge(int NodeNumber) {
adjacencySet.add(NodeNumber);
}
public List<Integer> getVertices_Adj() {
List<Integer> sortedList = new ArrayList<>(adjacencySet);
Collections.sort(sortedList);
return sortedList;
}
}
}