有向图的邻接表java
时间: 2024-05-06 09:13:07 浏览: 11
有向图的邻接表是一种常用的表示方法,它使用一个数组来存储图中的所有顶点,每个顶点对应一个链表,链表中存储了该顶点指向的其他顶点。在Java中,可以使用以下方式实现有向图的邻接表:
```java
import java.util.*;
// 有向图的邻接表表示
class Graph {
private int V; // 顶点的数量
private LinkedList<Integer>[] adj; // 邻接表
// 构造函数
public Graph(int v) {
V = v;
adj = new LinkedList[v];
for (int i = 0; i < v; ++i)
adj[i] = new LinkedList();
}
// 添加边
void addEdge(int v, int w) {
adj[v].add(w);
}
// 打印有向图的邻接表
void printGraph() {
for (int i = 0; i < V; ++i) {
System.out.print("顶点 " + i + " 的邻接表: ");
for (Integer n : adj[i]) {
System.out.print(n + " ");
}
System.out.println();
}
}
}
// 测试代码
public class Main {
public static void main(String[] args) {
int V = 5; // 顶点的数量
Graph graph = new Graph(V);
graph.addEdge(0, 1);
graph.addEdge(0, 4);
graph.addEdge(1, 2);
graph.addEdge(1, 3);
graph.addEdge(1, 4);
graph.addEdge(2, 3);
graph.addEdge(3, 4);
graph.printGraph();
}
}
```
上述代码中,我们定义了一个`Graph`类来表示有向图,其中`V`表示顶点的数量,`adj`是一个数组,每个元素都是一个链表,用于存储该顶点指向的其他顶点。`addEdge`方法用于添加边,`printGraph`方法用于打印有向图的邻接表。