networkx.algorithms.traversal.depth_first_search.dfs_labeled_edges

dfs_labeled_edges(G, source=None, depth_limit=None)[源代码]

在按类型标记的深度优先搜索(DFS)中迭代边。

参数
  • GNETWorkX图

  • 来源可选节点 )--指定深度优先搜索的起始节点,并返回可从源访问的组件中的边。

  • depth_limitint, optional (default=len(G)) )--指定最大搜索深度。

返回

边缘 --三重形式的发生器( uvd () uv )是否在深度优先搜索中探索边缘 d 是字符串“forward”、“nontree”或“reverse”之一。“前”边是指 u 已被访问,但 v 没有。“非树”边是其中两个边 uv 已访问,但边缘不在DFS树中。“反向”边在其上 uv 已访问,边缘在DFS树中。

返回类型

generator

实际案例

这些标签更详细地揭示了深度优先搜索算法的完整文本,例如, dfs_edges() ::

>>> from pprint import pprint
>>>
>>> G = nx.DiGraph([(0, 1), (1, 2), (2, 1)])
>>> pprint(list(nx.dfs_labeled_edges(G, source=0)))
[(0, 0, 'forward'),
 (0, 1, 'forward'),
 (1, 2, 'forward'),
 (2, 1, 'nontree'),
 (1, 2, 'reverse'),
 (0, 1, 'reverse'),
 (0, 0, 'reverse')]

提示

如果没有指定源,则可以任意地重复选择源,直到搜索到图中的所有组件。

该函数的实现是根据David Eppstein在 PADS 根据维基百科文章“深度限制搜索”进行修改以允许深度限制。