bfs_successors#
- bfs_successors(G, source, depth_limit=None, sort_neighbors=None)[source]#
Returns an iterator of successors in breadth-first-search from source.
- Parameters:
- GNetworkX graph
- sourcenode
Specify starting node for breadth-first search
- depth_limitint, optional(default=len(G))
Specify the maximum search depth
- sort_neighborsfunction
A function that takes the list of neighbors of given node as input, and returns an iterator over these neighbors but with custom ordering.
- Returns:
- succ: iterator
(node, successors) iterator where
successors
is the non-empty list of successors ofnode
in a breadth first search fromsource
. To appear in the iterator,node
must have successors.
Notes
Based on http://www.ics.uci.edu/~eppstein/PADS/BFS.py by D. Eppstein, July 2004.The modifications to allow depth limits based on the Wikipedia article “Depth-limited-search”.
Examples
>>> G = nx.path_graph(3) >>> print(dict(nx.bfs_successors(G, 0))) {0: [1], 1: [2]} >>> H = nx.Graph() >>> H.add_edges_from([(0, 1), (0, 2), (1, 3), (1, 4), (2, 5), (2, 6)]) >>> print(dict(nx.bfs_successors(H, 0))) {0: [1, 2], 1: [3, 4], 2: [5, 6]} >>> G = nx.Graph() >>> nx.add_path(G, [0, 1, 2, 3, 4, 5, 6]) >>> nx.add_path(G, [2, 7, 8, 9, 10]) >>> print(dict(nx.bfs_successors(G, source=1, depth_limit=3))) {1: [0, 2], 2: [3, 7], 3: [4], 7: [8]} >>> G = nx.DiGraph() >>> nx.add_path(G, [0, 1, 2, 3, 4, 5]) >>> print(dict(nx.bfs_successors(G, source=3))) {3: [4], 4: [5]}