DFS如何为非树工作?

时间:2016-11-01 04:44:41

标签: algorithm depth-first-search

我理解深度优先搜索的概念,涉及到遍历树木。但我很难在其他数据结构(数组,2d数组等)上执行dfs。考虑这个问题的最佳方式是什么?

2 个答案:

答案 0 :(得分:0)

深度优先搜索(DFS)通常在树上进行演示。现在,您如何实施树木就是您的召唤。您可以使用数组,链接列表,邻接矩阵等来实现。最好的理解方法是实现一个,这里有一些可以提供帮助的实现:

  1. DFS on an array
  2. DFS and BFS using Linked List

答案 1 :(得分:0)

DFS将在您应用它的每个结构上创建一个虚拟树。这棵树被称为结构的spanning tree。它们存在于图形,有向图甚至数组或其他结构中,而不是DFS可以访问的结构。

spanning tree of a grid graph

当然会有很多边缘不会出现在那棵树上。在无向图和结构中,它们始终是"后沿" (从子节点到祖先节点),但在边缘可能具有特定方向的结构上,它们可以是前沿(指向未访问的后代节点)或交叉边(跨越不同的子树)。

spanning tree

相关问题