当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NetworkX to_prufer_sequence用法及代码示例


本文简要介绍 networkx.algorithms.tree.coding.to_prufer_sequence 的用法。

用法:

to_prufer_sequence(T)

返回给定树的 Prüfer 序列。

Prüfer sequencen - 2 个介于 0 和 n - 1 之间的数字的列表,包括 0 和 n - 1。给定的 Prüfer 序列对应的树可以通过将序列中的一个节点与该序列中潜在度最小的节点重复连接来恢复。

参数

TNetworkX 图

表示树的无向图对象。

返回

列表

给定树的 Prüfer 序列。

抛出

NetworkXPointlessConcept

如果T 中的节点数少于两个。

NotATree

如果 T 不是树。

KeyError

如果 T 中的节点集不是 {0, ..., n - 1}。

注意

从标记树到 Prüfer 序列存在双射。此函数与 from_prufer_sequence() 函数相反。

有时 Prüfer 序列使用从 1 到 n 标记的节点,而不是从 0 到 n - 1。此函数需要以后一种形式标记节点。您可以使用 relabel_nodes() 将树的节点重新标记为适当的格式。

此实现来自 [1],运行时间为

参考

1

Wang, Xiaodong, Lei Wang, and Yingjie Wu. “An optimal algorithm for Prufer codes.” Journal of Software Engineering and Applications 2.02 (2009): 111. <https://doi.org/10.4236/jsea.2009.22016>

例子

Prüfer 序列和标记树之间存在双射,因此该函数是 from_prufer_sequence() 函数的逆函数:

>>> edges = [(0, 3), (1, 3), (2, 3), (3, 4), (4, 5)]
>>> tree = nx.Graph(edges)
>>> sequence = nx.to_prufer_sequence(tree)
>>> sequence
[3, 3, 3, 4]
>>> tree2 = nx.from_prufer_sequence(sequence)
>>> list(tree2.edges()) == edges
True

相关用法


注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.algorithms.tree.coding.to_prufer_sequence。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。