在Java中执行BFS遍历的图的树结构可以通过以下步骤实现:
下面是一个示例代码:
import java.util.*;
public class BFSTraversal {
public static void main(String[] args) {
// 创建图的邻接表表示
Map<Integer, List<Integer>> graph = new HashMap<>();
graph.put(1, Arrays.asList(2, 3));
graph.put(2, Arrays.asList(4, 5));
graph.put(3, Arrays.asList(6));
graph.put(4, Arrays.asList());
graph.put(5, Arrays.asList(7));
graph.put(6, Arrays.asList());
graph.put(7, Arrays.asList());
// 执行BFS遍历
bfsTraversal(graph, 1);
}
public static void bfsTraversal(Map<Integer, List<Integer>> graph, int start) {
Queue<Integer> queue = new LinkedList<>();
boolean[] visited = new boolean[graph.size() + 1];
// 标记起始顶点为已访问,并加入队列
visited[start] = true;
queue.offer(start);
while (!queue.isEmpty()) {
int vertex = queue.poll();
System.out.print(vertex + " ");
// 遍历邻接顶点
for (int neighbor : graph.get(vertex)) {
if (!visited[neighbor]) {
visited[neighbor] = true;
queue.offer(neighbor);
}
}
}
}
}
以上代码中,我们使用了一个HashMap来表示图的邻接表,其中键表示顶点,值表示与该顶点相邻的顶点列表。然后,我们从起始顶点开始执行BFS遍历,使用一个队列来存储待访问的顶点,并使用一个布尔型数组visited来标记顶点是否已经被访问过。在遍历过程中,我们依次访问队列中的顶点,并将其邻接顶点加入队列,直到队列为空。
这是一个简单的BFS遍历图的树结构的示例,你可以根据实际需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云