java 图数据结构
时间: 2023-11-08 19:50:32 浏览: 35
Java中的图数据结构可以使用邻接矩阵或邻接表来表示。下面是使用邻接矩阵实现的示例代码:
```java
import java.util.ArrayList;
public class Graph {
private int vertices;
private boolean[][] adjacencyMatrix;
public Graph(int vertices) {
this.vertices = vertices;
adjacencyMatrix = new boolean[vertices][vertices];
}
public void addEdge(int source, int destination) {
adjacencyMatrix[source][destination] = true;
adjacencyMatrix[destination][source] = true;
}
public void removeEdge(int source, int destination) {
adjacencyMatrix[source][destination] = false;
adjacencyMatrix[destination][source] = false;
}
public boolean hasEdge(int source, int destination) {
return adjacencyMatrix[source][destination];
}
public ArrayList<Integer> getNeighbors(int vertex) {
ArrayList<Integer> neighbors = new ArrayList<>();
for (int i = 0; i < vertices; i++) {
if (adjacencyMatrix[vertex][i]) {
neighbors.add(i);
}
}
return neighbors;
}
}
```
以上代码中,`Graph` 类表示图数据结构,通过邻接矩阵存储图的边信息,其中 `addEdge` 方法用于添加边,`removeEdge` 方法用于移除边,`hasEdge` 方法判断两个顶点之间是否有边,`getNeighbors` 方法获取一个顶点的邻居顶点列表。