Skip to main content
`Ctrl`+`K`

# bfs_tree

bfs_tree(G, source, reverse=False, depth_limit=None, sort_neighbors=None)

  Returns an oriented tree constructed from of a breadth-first-search starting at source.

  Parameters:
    G NetworkX graph
    source node

      Specify starting node for breadth-first search

    reverse bool, optional

      If True traverse a directed graph in the reverse direction

    depth_limit int, optional(default=len(G))

      Specify the maximum search depth

    sort_neighbors function (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.

  Returns:
    T: NetworkX DiGraph

      An oriented tree

  See also

  `dfs_tree`
  `bfs_edges`
  `edge_bfs`

  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)
      >>> list(nx.bfs_tree(G, 1).edges())
      [(1, 0), (1, 2)]
      >>> H = nx.Graph()
      >>> nx.add_path(H, [0, 1, 2, 3, 4, 5, 6])
      >>> nx.add_path(H, [2, 7, 8, 9, 10])
      >>> sorted(list(nx.bfs_tree(H, source=3, depth_limit=3).edges()))
      [(1, 0), (2, 1), (2, 7), (3, 2), (3, 4), (4, 5), (5, 6), (7, 8)]