当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NetworkX dfs_labeled_edges用法及代码示例


本文简要介绍 networkx.algorithms.traversal.depth_first_search.dfs_labeled_edges 的用法。

用法:

dfs_labeled_edges(G, source=None, depth_limit=None)

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

参数

GNetworkX 图
source节点,可选

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

depth_limitint,可选(默认=len(G))

指定最大搜索深度。

返回

边:生成器

( u , v , d ) 形式的三元组生成器,其中 ( u , v ) 是深度优先搜索中正在探索的边,d 是其中之一字符串‘forward’, ‘nontree’或‘reverse’。 ‘forward’ 边是其中 u 已被访问但 v 尚未访问的边。 ‘nontree’ 边是 uv 都已被访问但该边不在 DFS 树中的边。 ‘reverse’ 边位于 uv 都已被访问的边上,并且该边位于 DFS 树中。

注意

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

该函数的实现改编自 David Eppstein 在PADS 中的深度优先搜索函数,并根据维基百科文章“Depth-limited search”进行了修改以允许深度限制。

例子

这些标签比 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')]

相关用法


注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.algorithms.traversal.depth_first_search.dfs_labeled_edges。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。