eulerian_circuit#
- eulerian_circuit(G, source=None, keys=False)[source]#
返回一个在图
G
中的欧拉回路的边迭代器。欧拉回路 是一个包含图中每条边恰好一次的闭合路径。
- Parameters:
- GNetworkX 图
一个图,可以是 directed 或 undirected。
- source节点, 可选
回路的起始节点。
- keysbool
如果为 False,此函数生成的边格式为
(u, v)
。否则,边格式为(u, v, k)
。 此选项在G
不是多图时被忽略。
- Returns:
- edges迭代器
欧拉回路中的边迭代器。
- Raises:
- NetworkXError
如果图不是欧拉图。
See also
Notes
这是一个线性时间实现的算法,改编自 [1]。
关于欧拉回路的一般信息,参见 [2]。
References
[1]J. Edmonds, E. L. Johnson. Matching, Euler tours and the Chinese postman. Mathematical programming, Volume 5, Issue 1 (1973), 111-114.
Examples
在无向图中获取欧拉回路:
>>> 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]