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 with
ksubtrees is represented by a tuple of length
kin which each element is the nested tuple representation of a subtree.
- 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 breadth-first search order from the root node.
The tree corresponding to the given nested tuple, whose root node is node 0. If
True, nodes will be labeled in breadth-first search order starting from the root node.
This function is not the inverse of
to_nested_tuple(); the only guarantee is that the rooted trees are isomorphic.
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