深度优先搜索的 C 程序或图的 DFS
图的深度优先遍历(或搜索)类似于树的深度优先遍历。这里唯一的问题是,与树不同,图可能包含循环,因此我们可能会再次来到同一个节点。为了避免多次处理一个节点,我们使用一个布尔访问数组。
例如,在下图中,我们从顶点 2 开始遍历。当我们到达顶点 0 时,我们寻找它的所有相邻顶点。 2也是0的相邻顶点。如果我们不标记访问过的顶点,那么2将被再次处理,它将成为一个非终止进程。下图的深度优先遍历为 2、0、1、3。
有关深度优先遍历的所有应用,请参阅此帖子。
以下是简单的深度优先遍历的实现。 C++ 实现使用图的邻接表表示。 STL 的列表容器用于存储相邻节点的列表。
在评论中写代码?请使用 ide.geeksforgeeks.org,生成链接并在此处分享链接。