二十四、图遍历的应用
一、判断路径是否存在
判断有向图 $G$ 中是否存在从 $s$ 顶点到 $t$ 顶点的路径。
如果从 $s$ 到 $t$ 的路径存在,则从 $s$ 出发进行遍历,必能搜索到 $t$ ,且一旦访问到 $t$ ,则遍历终止。此问题采用深度优先遍历和广度优先遍历均可。
基于连通图的深度优先遍历
Status isReachable_DFS(MGraph G, int s, int t)
{ //判断有向图G中是否存在从顶点s到t的路径,图G采用邻接数组存储结构
int i;
Status found = FALSE; //标识是否找到终点t
G.tags[s] = VISITED;
if (s == t) return TRUE; //一旦遇到终点t,则遍历终止
for (i = FirstAdjVex_M(G, s); i >= 0 && found == FALSE; i = NextAdjVex_M(G, s, i))
{
if (G.tags[i] == UNVISTTED)
found = isReachable_DFS(G, i, t); //保存查找结果
}
return found;
}
本文作者:DrClef
本文链接:https://www.cnblogs.com/haibersut/p/16891495.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步