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


Python NetworkX eulerian_circuit用法及代碼示例


本文簡要介紹 networkx.algorithms.euler.eulerian_circuit 的用法。

用法:

eulerian_circuit(G, source=None, keys=False)

返回 G 中歐拉回路邊的迭代器。

Eulerian circuit 是一個封閉的遊走,包含圖的每條邊恰好一次。

參數

GNetworkX 圖

有向圖或無向圖。

source節點,可選

電路的起始節點。

keysbool

如果為 False,則此函數生成的邊將采用 (u, v) 的形式。否則,邊將采用 (u, v, k) 的形式。除非G 是多重圖,否則此選項將被忽略。

返回

edges迭代器

歐拉回路中邊的迭代器。

拋出

NetworkXError

如果圖不是歐拉圖。

注意

這是改編自[1]的算法的線性時間實現。

有關 Euler 遊覽的一般信息,請參閱 [2]。

參考

1

J. Edmonds, E. L. Johnson. Matching, Euler tours and the Chinese postman. Mathematical programming, Volume 5, Issue 1 (1973), 111-114.

2

https://en.wikipedia.org/wiki/Eulerian_path

例子

要在無向圖中獲得歐拉回路:

>>> G = nx.complete_graph(3)
>>> list(nx.eulerian_circuit(G))
[(0, 2), (2, 1), (1, 0)]
>>> list(nx.eulerian_circuit(G, source=1))
[(1, 2), (2, 0), (0, 1)]

要獲得歐拉回路中的頂點序列:

>>> [u for u, v in nx.eulerian_circuit(G)]
[0, 2, 1]

相關用法


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