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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。