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


Python NetworkX biconnected_component_edges用法及代码示例


本文简要介绍 networkx.algorithms.components.biconnected_component_edges 的用法。

用法:

biconnected_component_edges(G)

返回边列表的生成器,输入图的每个双连通分量都有一个列表。

双连通分量是最大子图,因此删除一个节点(以及该节点上的所有边)不会断开子图。请注意,节点可能是多个双连接组件的一部分。这些节点是关节点或切割顶点。但是,每条边都属于一个且仅属于一个双连通分量。

请注意,按照惯例,二元组被认为是双连接组件。

参数

GNetworkX 图表

一个无向图。

返回

edges列表生成器

边列表生成器,每个双组件一个列表。

抛出

NetworkXNotImplemented

如果输入图不是无向图。

注意

查找关节点和双连接组件的算法是使用非递归深度优先搜索 (DFS) 实现的,该算法跟踪后边在 DFS 树中达到的最高级别。当且仅当存在以n为根的子树使得在DFS中链接到n的前驱的n的任何后继没有后边时,节点n是关节点树。通过跟踪 DFS 遍历的所有边,我们可以获得双连通分量,因为双分量的所有边将在关节点之间连续遍历。

参考

1

Hopcroft, J.; Tarjan, R. (1973). “Efficient algorithms for graph manipulation”. Communications of the ACM 16: 372-378. doi:10.1145/362248.362272

例子

>>> G = nx.barbell_graph(4, 2)
>>> print(nx.is_biconnected(G))
False
>>> bicomponents_edges = list(nx.biconnected_component_edges(G))
>>> len(bicomponents_edges)
5
>>> G.add_edge(2, 8)
>>> print(nx.is_biconnected(G))
True
>>> bicomponents_edges = list(nx.biconnected_component_edges(G))
>>> len(bicomponents_edges)
1

相关用法


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