// Graph API (OP)
// https://www.coursera.org/learn/algorithms-part2/lecture/4ZE6G/graph-api
public class Graph{
private final int V;
private Bag[] adj;
public Graph(int V){
this.V = V;
adj = (Bag[]) new Bag[V];
for (int v = 0; v < V; v++)
adj[v] = new Bag();
}
public void addEdge(int v, int w){
adj[v].add(w);
adj[w].add(v);
}
public Iterable adj(int v){
// iterator for vertices adjacent to v
return adj[v];
}
}