Skip to main content
`Ctrl`+`K`

# random_labeled_tree

random_labeled_tree(n, *, seed=None)

  Returns a labeled tree on `n` nodes chosen uniformly at random.

  Generating uniformly distributed random Prüfer sequences and converting them into the corresponding trees is a straightforward method of generating uniformly distributed random labeled trees. This function implements this method.

  Parameters:
    n int

      The number of nodes, greater than zero.

    seed random_state

      Indicator of random number generation state. See Randomness

  Returns:
    `networkx.Graph`

      A `networkx.Graph` with nodes in the set {0, …, n - 1}.

  Raises:
    NetworkXPointlessConcept

      If `n` is zero (because the null graph is not a tree).

  Examples

      >>> G = nx.random_labeled_tree(5, seed=42)
      >>> nx.is_tree(G)
      True
      >>> G.edges
      EdgeView([(0, 1), (0, 3), (0, 2), (2, 4)])

  A tree with arbitrarily directed edges can be created by assigning generated edges to a `DiGraph`:

      >>> DG = nx.DiGraph()
      >>> DG.add_edges_from(G.edges)
      >>> nx.is_tree(DG)
      True
      >>> DG.edges
      OutEdgeView([(0, 1), (0, 3), (0, 2), (2, 4)])