kosaraju_strongly_connected_components#

kosaraju_strongly_connected_components(G, source=None)[source]#

生成图中强连通分量中的节点。

参数:
GNetworkX 图

一个有向图。

返回:
comp集合生成器

一个生成器,生成节点的集合,图G中的每个强连通分量对应一个集合。

抛出:
NetworkXNotImplemented

如果G是无向图。

注意

使用Kosaraju算法。

示例

生成按大小降序排列的强连通分量列表。

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

如果只想获取最大的分量,使用max函数比排序更高效。

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