首页 > 试题广场 >

设有向图G采用邻接表方式存储,试设计一个算法,采用广度优先搜

[问答题]

设有向图G采用邻接表方式存储,试设计一个算法,采用广度优先搜索判断图中是否存在有顶点v i 到顶点v j 的路径,若存在则将该路径打印出来。

首先看无向图的情况,当采用广度优先搜索时,以顶点vi为搜索入口,当搜索完成后,如果visited[vj] = 1,表明从顶点vi到vj是有路径的;如果visited[vj] = 0,即vj未被访问过,表明vi到vj之间没有路径,并且vj是另一个连通分支上的一点;深度优先搜索也是如此。再来看有向图,任意两个顶点间两个方向可能都有边,当采用广度优先搜索时,情况类似无向图,仍以vi为搜索入口,当搜索完成后,若visited[vj] = 1,表明从顶点vi到vj是有路径的;如果visited[vj] = 0,此时可能存在vj到vi有路径,但vi到vj没有路径的情况,但vi到vj依然没有路径。在调用广度优先搜索算法时,通过构造广度优先生成树,当存在vi到vj的路径时,可根据生成树将路径打印出来。
发表于 2017-08-22 10:40:11 回复(0)