二分图的连通分量

Connected components of bipartite graphs

我想使用 networkx 从二分图中提取连通分量(作为二分图)。但是 networkx 中的连通分量不是针对二部图的,而是一般的无向图和有向图。有二分图的例子吗?谢谢

对应于二分图(实际上是任何图)的连通分量的子图本身携带所有节点属性,因此特别是,您可以使用它们来标记您的分区,如 the docs 中所示:

In [28]: B = nx.Graph()
    ...: B.add_nodes_from([1, 2, 3, 4], bipartite=0)
    ...: B.add_nodes_from(['a', 'b', 'c'], bipartite=1)
    ...: B.add_edges_from([(1, 'a'), (1, 'b'), (2, 'b'), (2, 'a'), (3, 'c'), (4, 'c')])
    ...:
    ...: G = B.subgraph(next(nx.connected_components(B)))

In [30]: G.nodes
Out[30]: NodeView((1, 2, 'a', 'b'))

In [31]: G.nodes[1]
Out[31]: {'bipartite': 0}