dfs_labeled_edges#

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

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

参数
G网络X图表
source节点,可选

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

depth_limit整型,可选(默认值=len(G))

指定最大搜索深度。

返回
边:生成器

形式的三元组的生成器( uvd ),其中( uv )是在深度优先搜索中探索的边缘和 d 是字符串“Forward”、“NONTREE”或“REVERSE”之一。“Forward”指的是 u 已经被访问过了,但是 v 还没有。“非树”边是指其中既有 uv 已访问,但边缘不在DFS树中。一条‘反向’边,其中两个 uv 已经访问过,并且边缘在DFS树中。

笔记

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

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

实例

这些标签更详细地揭示了深度优先搜索算法的完整文本,例如, 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')]