我有很多点的二维坐标,例如点a = x,y
我想使用邻接列表进行图实现,并以最有效的方式(不使用地图或哈希表)连接无向图的某些点
我试图为名为point的点创建一个类,并做了一系列链接列表
私有列表节点[] =新的LinkedList [numPoints]
问题是数组将是整数,我不能存储x和y,我需要知道x和y
public class Graph {
private static final String NEW_LINE = System.lineSeparator();
private final int vertices;
private int edges;
private List<Integer>[] adj;
public Graph(int v) {
if (v < 0)
throw new IllegalArgumentException("Number of vertices must be non-negative");
this.vertices = v;
this.edges = 0;
adj = (List<Integer>[]) new ArrayList[v];
for (int i = 0; i < v; i++) {
adj[v] = new ArrayList<Integer>();
}
}
public int getVertices() {
return vertices;
}
public int getEdges() {
return edges;
}
public void addEdge(int v, int w) {
adj[v].add(w);
adj[w].add(v);
edges++;
}
public int degree(int v) {
return adj[v].size();
}
public Iterable<Integer> adj(int v) {
return adj[v];
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
for (int v = 0; v < vertices; v++) {
builder.append(v + ": ");
for (int w : adj[v]) {
builder.append(w + " ");
}
builder.append(NEW_LINE);
}
return builder.toString();
}
}