eulerian_circuit#

eulerian_circuit(G, source=None, keys=False)[源代码]#

返回对中欧拉电路边缘的迭代器 G .

欧拉电路 是一个封闭的漫游,它只包含一个图形的每一个边。

参数
G网络X图表

有向图或无向图。

source节点,可选

回路的起始节点。

keys布尔尔

如果为False,则此函数生成的边的形式为 (u, v) 。否则,边的形式为 (u, v, k) 。此选项将被忽略,除非 G 是一个多重图。

返回
edges迭代器

欧拉回路中边上的迭代器。

加薪
NetworkXError

如果图形不是欧拉的。

参见

is_eulerian

笔记

这是一个算法的线性时间实现,改编自 [1].

有关欧拉之旅的一般信息,请参见 [2].

工具书类

1

J.Edmonds,E.L.Johnson。匹配,欧拉旅游和中国邮差。数学规划,第5卷,第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]