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 breadth-first 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 breadth-first 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