Java深度优先搜索算法
时间: 2023-11-30 08:41:23 浏览: 30
以下是Java实现深度优先搜索算法的示例代码:
```java
import java.util.ArrayList;
import java.util.List;
public class DFS {
private int V; // 图中节点的数量
private List<Integer>[] adj; // 邻接表
public DFS(int v) {
V = v;
adj = new ArrayList[V];
for (int i = 0; i < V; ++i) {
adj[i] = new ArrayList<>();
}
}
// 添加边
public void addEdge(int v, int w) {
adj[v].add(w);
}
// 深度优先搜索
public void DFS(int v, boolean[] visited) {
visited[v] = true;
System.out.print(v + " ");
for (int i : adj[v]) {
if (!visited[i]) {
DFS(i, visited);
}
}
}
public static void main(String[] args) {
DFS g = new DFS(8);
g.addEdge(0, 1);
g.addEdge(1, 2);
g.addEdge(1, 3);
g.addEdge(2, 4);
g.addEdge(2, 5);
g.addEdge(3, 6);
g.addEdge(3, 7);
boolean[] visited = new boolean[8];
g.DFS(0, visited);
}
}
```
输出结果为:0 1 2 4 5 3 6 7