写一个简单的图算法,java
时间: 2024-05-17 10:11:39 浏览: 9
以下是一个简单的图算法——深度优先遍历(DFS),使用Java语言实现:
```java
import java.util.ArrayList;
import java.util.List;
public class Graph {
private int V;
private List<Integer>[] adj;
public Graph(int V) {
this.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 void DFS(int v) {
boolean[] visited = new boolean[V];
DFS(v, visited);
}
public static void main(String[] args) {
Graph g = new Graph(4);
g.addEdge(0, 1);
g.addEdge(0, 2);
g.addEdge(1, 2);
g.addEdge(2, 0);
g.addEdge(2, 3);
g.addEdge(3, 3);
System.out.println("Following is Depth First Traversal " + "(starting from vertex 2)");
g.DFS(2);
}
}
```
这个程序实现了一个无向图数据结构,并且实现了深度优先遍历算法。在主函数中,我们构造一个四个顶点的图,并添加了6条边。然后我们从顶点2开始遍历这个图,输出遍历结果到控制台。