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


Python NetworkX strongly_connected_components用法及代碼示例


本文簡要介紹 networkx.algorithms.components.strongly_connected_components 的用法。

用法:

strongly_connected_components(G)

在圖的強連通分量中生成節點。

參數

GNetworkX 圖表

有向圖。

返回

comp集合生成器

一組節點的生成器,一個用於 G 的每個強連通分量。

拋出

NetworkXNotImplemented

如果 G 是無向的。

注意

使用 Tarjan 的算法[R827335e01166-1]_ 和 Nuutila 的修改[R827335e01166-2]_。算法的非遞歸版本。

參考

1

Depth-first search and linear graph algorithms, R. Tarjan SIAM Journal of Computing 1(2):146-160, (1972).

2

On finding the strongly connected components in a directed graph. E. Nuutila and E. Soisalon-Soinen Information Processing Letters 49(1): 9-14, (1994)..

例子

生成強連接組件的排序列表,最大的在前。

>>> G = nx.cycle_graph(4, create_using=nx.DiGraph())
>>> nx.add_cycle(G, [10, 11, 12])
>>> [
...     len(c)
...     for c in sorted(nx.strongly_connected_components(G), key=len, reverse=True)
... ]
[4, 3]

如果你隻想要最大的組件,使用 max 而不是 sort 更有效。

>>> largest = max(nx.strongly_connected_components(G), key=len)

相關用法


注:本文由純淨天空篩選整理自networkx.org大神的英文原創作品 networkx.algorithms.components.strongly_connected_components。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。