dfs_edges#
- dfs_edges(G, source=None, depth_limit=None, *, sort_neighbors=None)[source]#
迭代深度优先搜索(DFS)中的边。
对
G
的节点执行深度优先搜索,并按顺序生成边。这可能不会生成G
中的所有边(参见edge_dfs
)。- 参数:
- GNetworkX 图
- source节点,可选
指定深度优先搜索的起始节点,并生成从源节点可达分量中的边。
- depth_limit整数,可选(默认为 len(G))
指定最大搜索深度。
- sort_neighbors函数(默认为 None)
一个函数,接受节点的迭代器作为输入,并返回具有自定义顺序的相同节点的迭代器。例如,
sorted
将按升序对节点进行排序。
- 生成:
- edge: 由节点组成的 2 元组
生成深度优先搜索产生的边。
注意
如果未指定源节点,则会任意选择一个源节点并重复搜索,直到搜索完图中的所有连通分量。
此函数的实现改编自 David Eppstein 在 PADS 中的深度优先搜索函数 [1],并根据维基百科文章“深度限制搜索”(Depth-limited search)[2] 进行了修改以允许深度限制。
参考文献
示例
>>> G = nx.path_graph(5) >>> list(nx.dfs_edges(G, source=0)) [(0, 1), (1, 2), (2, 3), (3, 4)] >>> list(nx.dfs_edges(G, source=0, depth_limit=2)) [(0, 1), (1, 2)]