Java邻接表G中顶点v出发广度优先遍历并输出
时间: 2024-03-24 09:39:47 浏览: 122
假设邻接表G由一个以头指针数组表示的单链表存储,下面是Java实现邻接表G中顶点v出发广度优先遍历并输出的代码:
```
import java.util.LinkedList;
import java.util.Queue;
public class Graph {
private int vNum; // 顶点数
private LinkedList<Integer>[] adj; // 邻接表
public void bfs(int v) {
Queue<Integer> queue = new LinkedList<>();
boolean[] visited = new boolean[vNum]; // 记录是否已访问
visited[v] = true;
queue.offer(v);
while (!queue.isEmpty()) {
int curr = queue.poll();
System.out.print(curr + " ");
for (int adjNode : adj[curr]) {
if (!visited[adjNode]) {
visited[adjNode] = true;
queue.offer(adjNode);
}
}
}
}
}
```
其中,`bfs`方法实现了广度优先遍历,通过`Queue`数据结构实现。`visited`数组记录每个顶点是否已访问,防止重复遍历。`adj`数组存储邻接表,其中`adj[curr]`表示顶点curr的邻接点列表。该方法会从v顶点开始遍历,输出每个遍历到的顶点。
阅读全文
相关推荐



















