欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

[算法介绍] 图的深度优先搜索遍历(DFS)--基本思想是:从图中的一个顶点 vi 开始,访问这个顶点并标记它,然后依次搜索 vi 的每个邻居 vj;如果 vj 未被访问,则访问并标记 vj,然后依次搜索 vj 的每个邻居;如果 vj 的邻居未被访问,则访问 vj 的邻居并标记它们,直到访问完图中与 vi 有路径连接的所有顶点。如果图中仍有顶点未被访问(在无连接顶点的情况下),则选择图中另一个未被访问的顶点作为起点,重复上述过程,直到图中所有顶点都被访问。 在下面的程序中,假设图如下所示: A B C D E 对应的序号是 0 1 2 3 4。上图的轨迹是深度优先搜索遍历。

最编程 2024-03-10 10:11:23
...

        深度优先搜索遍历实在访问了顶点vi后,访问vi的一个邻接点vj;访问vj之后,又访问vj的一个邻接点,依次类推,尽可能向纵深方向搜索,所以称为深度优先搜索遍历。显然这种搜索方法具有递归的性质。图的BFS和树的搜索遍历很类似,只是其存储方式不同。

        其基本思想为:从图中某一顶点vi出发,访问此顶点,并进行标记,然后依次搜索vi的每个邻接点vj;若vj未被访问过,则对vj进行访问和标记,然后依次搜索vj的每个邻接点; 若vj的邻接点未被访问过,则访问vj的邻接点,并进行标记,直到图中和vi有路径相通的顶点都被访问。若图中尚有顶点未被访问过(非连通的情况下),则另选图中的一个未被访问的顶点作为出发点,重复上述过程,直到图中所有顶点都被访问为止。

在下面的程序中,假设图如下所示: