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


Python NetworkX is_biconnected用法及代碼示例


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

用法:

is_biconnected(G)

如果圖是雙連通的,則返回 True,否則返回 False。

一個圖是雙連通的,當且僅當,它不能通過僅刪除一個節點(以及該節點上的所有邊)來斷開連接。如果刪除一個節點會增加圖中斷開組件的數量,則該節點稱為關節點或切割頂點。雙連通圖沒有關節點。

參數

GNetworkX 圖表

一個無向圖。

返回

biconnectedbool

如果圖是雙連通的,則為 True,否則為 False。

拋出

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.path_graph(4)
>>> print(nx.is_biconnected(G))
False
>>> G.add_edge(0, 3)
>>> print(nx.is_biconnected(G))
True

相關用法


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