图的遍历,BFS和DFS的Java实现

1. BFS

图的遍历,BFS和DFS的Java实现

 

 广度优先搜索类似于树的层次遍历过程。它需要借助一个队列来实现。要想遍历从v0到v6的每一个顶点,我们可以设v0为第一层,v1、v2、v3为第二层,v4、v5为第三层,v6为第四层,再逐个遍历每一层的每个顶点。

具体实现:

(1)创建一个visited数组,用来记录已被访问过的顶点;创建一个队列,用来存放每一层的顶点;初始化图G。

(2)从图中的v0开始访问,将的visited[v0]数组的值设置为true,同时将v0入队。

(3)只要队列不空,则重复如下操作:队列顶点元素v0出队。依次检查v0的所有邻接节点w,如果visited[w]=false,则入队,并将visited[w]置为true

 

上一篇:[LeetCode] 261. Graph Valid Tree


下一篇:1032 Sharing (25分)