Breadth First Search(BFS) - 广度优先搜索


问题

用广度优先搜索从图的顶点开始遍历所有顶点。

解法

广度优先搜索需要设置一个队列,然后进行以下操作:

初始时将加入队列中作为等待访问的顶点,并染红;

重复从队列中取出头节点访问,将的所有邻节点都加入队列中作为下次等待访问的顶点,并染红;

重复第步操作直到为空,算法结束。下图演示搜索过程:

BreadthFirstSearch1.png

顶点访问的顺序为。广度优先搜索时间复杂度为


Introduction To Algorithms


源码

BreadthFirstSearch.h

BreadthFirstSearch.cpp

测试

BreadthFirstSearchTest.cpp