1)对于加权图,图的DFS遍历将生成最小生成树和所有对最短路径树。
2)检测图形中的周期当且仅当我们在DFS期间看到后边缘时,图形才具有周期。因此,我们可以为图形运行DFS并检查后边缘。(请参阅此了解详情)
3)路径查找我们可以专门研究DFS算法,以找到两个给定顶点u和z之间的路径。i)以u为起始顶点调用DFS(G,u)。ii)使用堆栈S跟踪起始顶点和当前顶点之间的路径。iii)遇到目标顶点z后,立即返回路径作为堆栈的内容
4)拓扑排序拓扑排序主要用于根据作业之间的给定依赖性来调度作业。在计算机科学中,这种类型的应用出现在指令调度,重新计算电子表格中的公式值时公式单元格评估的顺序,逻辑综合,确定要在makefile中执行的编译任务的顺序,数据序列化以及解析链接器中的符号依存关系[2]。 ]。
5)测试图是否为二部图当我们第一次发现一个新顶点时,可以对BFS或DFS进行扩充,对它的父对面进行着色,对于彼此的边,请检查它是否未链接相同颜色的两个顶点。任何连接的组件中的第一个顶点可以是红色或黑色!请参阅此了解详情。
6)查找图的强连通组件如果图中的每个顶点到每个其他顶点之间都有一条路径,则有向图称为强连接。(参见此基础算法中用于发现强连通分量为DFS)
7)解决难题与只有一个解决方案,如迷宫。(通过仅在访问集中的当前路径上包括节点,DFS可以适用于找到迷宫的所有解决方案。)