📜  用于深度优先搜索或图的 DFS 的Java程序

📅  最后修改于: 2022-05-13 01:58:09.609000             🧑  作者: Mango

用于深度优先搜索或图的 DFS 的Java程序

图的深度优先遍历(或搜索)类似于树的深度优先遍历。这里唯一的问题是,与树不同,图可能包含循环,因此我们可能会再次来到同一个节点。为了避免多次处理一个节点,我们使用一个布尔访问数组。

例如,在下图中,我们从顶点 2 开始遍历。当我们到达顶点 0 时,我们寻找它的所有相邻顶点。 2也是0的相邻顶点。如果我们不标记访问过的顶点,那么2将被再次处理,它将成为一个非终止进程。下图的深度优先遍历为 2、0、1、3。

有关深度优先遍历的所有应用,请参阅此帖子。
以下是简单的深度优先遍历的实现。 C++ 实现使用图的邻接表表示。 STL 的列表容器用于存储相邻节点的列表。