BFS和DFS(一)

BFS(Breadth First Search),DFS(Depth First Search)

BFS 广度优先搜索,DFS 深度优先搜索是两种常用的图搜索算法。

BFS

在图上进行BFS之前,我们先来看一下在树上进行BFS的结果。

BFS和DFS(一)_第1张图片

对如图一棵树BFS的过程即按层进行遍历的过程。结果为 ABCDEFGH。

BFS和DFS(一)_第2张图片

 然而,图没有根结点,因此我们需要规定一个节点作为源节点。在这里,我们规定A为源节点。

对该图进行BFS结果为 ABCDEF (通常情况下,BFS结果不唯一,如ACBDEF ,ACBEDF都是BFS的结果)。

虽然BFS的结果不唯一,但如ABCEDF并不是BFS的结果(因为BE之间不相连)。

 

DFS

BFS和DFS(一)_第3张图片

DFS同BFS一样,同样是从一个节点开始,随便选一条路,直到走到不能走再往回走。

同样以这张图为例,以A为源节点进行DFS,过程为:

BFS和DFS(一)_第4张图片

总结来说,BFS是一层一层走。DFS是一条路走到黑,直到不能再走时回头。

你可能感兴趣的:(BFS和DFS(一))