networkx.algorithms.tree.coding.from_nested_tuple¶

from_nested_tuple
(sequence, sensible_relabeling=False)[source]¶ Returns the rooted tree corresponding to the given nested tuple.
The nested tuple representation of a tree is defined recursively. The tree with one node and no edges is represented by the empty tuple,
()
. A tree withk
subtrees is represented by a tuple of lengthk
in which each element is the nested tuple representation of a subtree. Parameters
sequence (tuple) – A nested tuple representing a rooted tree.
sensible_relabeling (bool) – Whether to relabel the nodes of the tree so that nodes are labeled in increasing order according to their breadthfirst search order from the root node.
 Returns
The tree corresponding to the given nested tuple, whose root node is node 0. If
sensible_labeling
isTrue
, nodes will be labeled in breadthfirst search order starting from the root node. Return type
NetworkX graph
Notes
This function is not the inverse of
to_nested_tuple()
; the only guarantee is that the rooted trees are isomorphic.See also
Examples
Sensible relabeling ensures that the nodes are labeled from the root starting at 0:
>>> balanced = (((), ()), ((), ())) >>> T = nx.from_nested_tuple(balanced, sensible_relabeling=True) >>> edges = [(0, 1), (0, 2), (1, 3), (1, 4), (2, 5), (2, 6)] >>> all((u, v) in T.edges() or (v, u) in T.edges() for (u, v) in edges) True