算法设计与分析[0005] Breadth First Search(广度优先搜索)

 本文主要介绍 BFSC++C 语言实现,并借助 LeetCode 上的一道题,说说基本的 BFS 在问题求解中的应用。

What’s B(readth)F(irst)S(earch)

 广度优先搜索算法(Breadth First Search),又叫宽度优先搜索,或横向优先搜索。是从根节点开始,沿着树的宽度遍历树的节点。如果所有节点均被访问,则算法中止。

算法设计与分析[0004] Depth First Search(深度优先搜索)

 本文主要介绍 DFSC++C 语言实现,并借助 LeetCode 上的一道题,说说基本的 DFS 在问题求解中的应用。

What’s D(epth)F(irst)S(earch)

 深度优先搜索算法(Depth First Search),是搜索算法的一种。是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点 N 的所有边都己被探寻过,搜索将回溯到发现节点 N 的那条边的起始节点,这一过程一直进行到已发现从源节点可达的所有节点为止。
 如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。