Note
This documents the development version of NetworkX. Documentation for the current release can be found here.
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
 sequencetuple
A nested tuple representing a rooted tree.
 sensible_relabelingbool
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
 NetworkX graph
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.
See also
Notes
This function is not the inverse of
to_nested_tuple()
; the only guarantee is that the rooted trees are isomorphic.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