dfs_edges#
- dfs_edges(G, source=None, depth_limit=None, *, sort_neighbors=None)[source]#
Iterate over edges in a depth-first-search (DFS).
Perform a depth-first-search over the nodes of
G
and yield the edges in order. This may not generate all edges inG
(seeedge_dfs
).- Parameters:
- GNetworkX graph
- sourcenode, optional
Specify starting node for depth-first search and yield edges in the component reachable from source.
- depth_limitint, optional (default=len(G))
Specify the maximum search depth.
- sort_neighborsfunction (default=None)
A function that takes an iterator over nodes as the input, and returns an iterable of the same nodes with a custom ordering. For example,
sorted
will sort the nodes in increasing order.
- Yields:
- edge: 2-tuple of nodes
Yields edges resulting from the depth-first-search.
Notes
If a source is not specified then a source is chosen arbitrarily and repeatedly until all components in the graph are searched.
The implementation of this function is adapted from David Eppstein’s depth-first search function in PADS [1], with modifications to allow depth limits based on the Wikipedia article “Depth-limited search” [2].
References
Examples
>>> 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)]