當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python NetworkX from_prufer_sequence用法及代碼示例


本文簡要介紹 networkx.algorithms.tree.coding.from_prufer_sequence 的用法。

用法:

from_prufer_sequence(sequence)

返回對應於給定 Prüfer 序列的樹。

Prüfer sequencen - 2 個介於 0 和 n - 1 之間的數字的列表,包括 0 和 n - 1。給定的 Prüfer 序列對應的樹可以通過將序列中的一個節點與該序列中潛在度最小的節點重複連接來恢複。

參數

sequence列表

一個 Prüfer 序列,它是一個 n - 2 個介於零和 n - 1 之間的整數的列表,包括端點。

返回

NetworkX 圖

對應於給定 Prüfer 序列的樹。

注意

從標記樹到 Prüfer 序列存在雙射。該函數是from_prufer_sequence() 函數的反函數。

有時 Prüfer 序列使用從 1 到 n 標記的節點,而不是從 0 到 n - 1。此函數需要以後一種形式標記節點。您可以使用 networkx.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 序列和標記樹之間存在雙射,因此該函數是 to_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.from_prufer_sequence。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。