to_nested_tuple#
- to_nested_tuple(T, root, canonical_form=False)[源代码]#
返回给定树的嵌套元组表示形式。
树的嵌套元组表示是递归定义的。一个节点没有边的树用空元组表示,
()
. 一棵树k
子树由一个长度为的元组表示。k
其中每个元素都是子树的嵌套元组表示。- 参数
- T网络X图表
表示树的无向图对象。
- root结点
中的节点
T
解释为树根。- canonical_form布尔尔
如果
True
,则对每个元组进行排序,以便该函数返回有根树的规范形式。这意味着“较轻”的子树将作为嵌套的元组出现在“较重”的子树之前。以这种方式,每个同构的根树具有相同的嵌套元组表示。
- 返回
- 元组
树的嵌套元组表示。
笔记
这个功能是 not 逆
from_nested_tuple()
唯一的保证是有根的树是同构的。实例
树不必是平衡二叉树::
>>> T = nx.Graph() >>> T.add_edges_from([(0, 1), (0, 2), (0, 3)]) >>> T.add_edges_from([(1, 4), (1, 5)]) >>> T.add_edges_from([(3, 6), (3, 7)]) >>> root = 0 >>> nx.to_nested_tuple(T, root) (((), ()), (), ((), ()))
继续以上示例,如果
canonical_form
是True
,将对嵌套的元组进行排序::>>> nx.to_nested_tuple(T, root, canonical_form=True) ((), ((), ()), ((), ()))
甚至路径图也可以解释为树:
>>> T = nx.path_graph(4) >>> root = 0 >>> nx.to_nested_tuple(T, root) ((((),),),)