基本框架
import java.util.Scanner;
class DenseGraph{
private int n;
private int m;
private boolean directed;
private boolean[][]g;
public DenseGraph(int n,boolean directed){
assert n>=0;
this.n=n;
this.m=0;
this.directed=directed;
g=new boolean[n][n];
}
public int V(){
return n;
}
public int E(){
return m;
}
public void addEdge(int v,int w){
assert v>=0&&v<n;
assert w>=0&&w<n;
if(hasEdge(v,w)){
return;
}
g[v][w]=true;
if(!directed){
g[w][v]=true;
}
m++;
}
boolean hasEdge(int v,int w){
assert v>=0&&v<n;
assert w>=0&&w<n;
return g[v][w];
}
}
public Iterable<Integer>adj(int v){
assert v>=0&&v<n;
Vector<Integer>adjV=new Vector<Integer>();
for(int i=0;i<n;i++){
if(g[v][i]){
adjV.add(i);
}
}
return adjV;
}