dfs_labeled_edges#
- dfs_labeled_edges(G, source=None, depth_limit=None)[源代码]#
在按类型标记的深度优先搜索(DFS)中迭代边。
- 参数
- G网络X图表
- source节点,可选
指定深度优先搜索的起始节点,并返回可从源访问的组件中的边。
- depth_limit整型,可选(默认值=len(G))
指定最大搜索深度。
- 返回
- 边:生成器
形式的三元组的生成器( u , v , d ),其中( u , v )是在深度优先搜索中探索的边缘和 d 是字符串“Forward”、“NONTREE”或“REVERSE”之一。“Forward”指的是 u 已经被访问过了,但是 v 还没有。“非树”边是指其中既有 u 和 v 已访问,但边缘不在DFS树中。一条‘反向’边,其中两个 u 和 v 已经访问过,并且边缘在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')]