该文章主要介绍两种常用的图搜索方式。
一、广度优先搜索
1.策略
首先访问顶点s,之后访问所有s的邻接顶点,再访问s邻接顶点的邻接顶点…多次访问后,图中所有顶点均被访问一次,则遍历过程结束。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/767255a1a9ab407d583297fb14ad30bb.png)
该遍历方法类似于二叉树中的层次遍历。
2.代码
与层次遍历相似,图的广度优先遍历也使用队列作为辅助。
template <typename Tv, typename Te>
void Graph<Tv, Te>::BFS(int v,int & clock)
{
Queue<int> Q;
status(v) = DISCOVERED;
Q.enedueue(v);
while(!Qempty()