code: def 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
          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
      -------
      T: NetworkX DiGraph
         An oriented tree
  
      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)]
  
  
      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`_".
  
      .. _Depth-limited-search: https://en.wikipedia.org/wiki/Depth-limited_search
  
      See Also
      --------
      dfs_tree
      bfs_edges
      edge_bfs
      """
      T = nx.DiGraph()
      T.add_node(source)
      edges_gen = bfs_edges(
          G,
          source,
          reverse=reverse,
          depth_limit=depth_limit,
          sort_neighbors=sort_neighbors,
      )
      T.add_edges_from(edges_gen)
      return T
  
file_path: networkx/networkx/algorithms/traversal/breadth_first_search.py
imports: import math
  from collections import deque
  import networkx
label_desc: Use image node_id 3 for calling a global function with example usage: bfs_tree(G, source, reverse, depth_limit, sort_neighbors) and returns: T