Java 邻接表G中顶点v出发深度优先遍历
时间: 2023-07-24 17:50:32 浏览: 41
以下是 Java 实现邻接表 G 中顶点 v 出发的深度优先遍历的代码:
```java
import java.util.LinkedList;
public 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<Integer>();
}
}
public void addEdge(int v, int w) {
adj[v].add(w);
}
public void DFSUtil(int v, boolean[] visited) {
visited[v] = true;
System.out.print(v + " ");
for (int i : adj[v]) {
if (!visited[i]) {
DFSUtil(i, visited);
}
}
}
public void DFS(int v) {
boolean[] visited = new boolean[V];
DFSUtil(v, visited);
}
}
```
其中,`V` 表示顶点数,`adj` 是邻接表数组,`addEdge` 方法用于添加边,`DFSUtil` 方法用于递归实现深度优先遍历,`DFS` 方法用于初始化 visited 数组并调用 DFSUtil 方法开始遍历。