逐层探索图,在深入之前访问所有邻居。使用队列数据结构来维护探索顺序。
在回溯之前沿着每个分支尽可能深入地探索。使用栈(或递归)来跟踪探索路径。
有向无环图 (DAG) 中顶点的线性排序,其中每个顶点都出现在它所指向的所有顶点之前。
在无向图中找到恰好访问每条边一次的路径。当图有恰好 0 或 2 个奇度顶点时存在。
在具有非负边权重的加权图中,从源顶点到所有其他顶点找到最短路径。
从源顶点找到最短路径并检测负权重环。适用于负边权重。
使用动态规划和中间顶点找到所有顶点对之间的最短路径。
通过从单个顶点开始生长来构建最小生成树,总是添加连接到新顶点的最小权重边。
通过对所有边进行排序并使用并查集来避免环路,同时添加最小权重边来构建最小生成树。
使用并行基于组件的方法构建最小生成树,适用于分布式计算环境。
使用DFS和low-link值以及栈在有向图中查找强连通分量。
使用两次DFS遍历查找强连通分量:一次在原图上,一次在转置图上。
查找在无向图中移除后会增加连通分量数量的顶点。
查找在无向图中移除后会增加连通分量数量的边。
确定图是否可以用恰好两种颜色着色,使得没有相邻顶点共享相同颜色。
使用DFS和并查集等各种技术检测有向图和无向图中环的存在。
使用回溯和动态规划技术找到恰好访问每个顶点一次的路径。
找到恰好访问每个城市一次并返回起点的最短可能路线。
为顶点分配颜色,使得没有两个相邻顶点共享相同颜色,使用最少的颜色数量。
找到最大的完全子图,其中每对顶点都由一条边连接。
确定图是否为弦图(长度为4或更多的每个环都有一条弦 - 连接环中两个非相邻顶点的边)。
使用Ford-Fulkerson等算法和增广路径在流网络中找到从源到汇的最大流。
找到将源与汇分离的最小容量割,通过最大流最小割定理与最大流密切相关。