java领接表怎么遍历图
时间: 2024-01-12 11:01:46 浏览: 100
首先,领接表是一种表示图的数据结构,它由一个顶点数组和一个邻接表组成。邻接表是一个包含所有邻接顶点的链表数组。在Java中,我们可以使用邻接表来表示图,并利用它来进行图的遍历。
为了遍历图,我们可以使用深度优先搜索(DFS)或广度优先搜索(BFS)算法。下面是一个示例,演示如何使用邻接表来遍历图:
```java
// 用邻接表表示图
import java.util.LinkedList;
class Graph {
int V; // 顶点的数量
LinkedList<Integer> adj[]; // 邻接表
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);
}
// 使用DFS来遍历图
void DFSUtil(int v, boolean visited[]) {
visited[v] = true;
System.out.print(v + " ");
for (int i : adj[v]) {
if (!visited[i])
DFSUtil(i, visited);
}
}
void DFS(int v) {
boolean visited[] = new boolean[V];
DFSUtil(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("以下是使用DFS遍历图的结果:");
g.DFS(2);
}
}
```
以上代码使用邻接表来表示图,并且演示了如何使用深度优先搜索来遍历图。在DFSUtil方法中,我们首先标记当前顶点为已访问,然后遍历它的邻接顶点,如果邻接顶点尚未被访问过,则继续递归遍历。通过这种方式,我们可以深度优先地遍历整个图。同样,我们也可以通过修改DFS方法来实现广度优先搜索算法来遍历图。
阅读全文