Fleury算法给出在欧拉图中“一笔画出”欧拉回路的方法。其大致步骤如下:
(1)任取v0∈V(G),令P0=v0,i=0;
(2)设pi = v0e1v1e2...eivi已经走遍,按下面方法从E(G)-{e1,e2,e3,...,ei}中选取e(i+1);
1.e(i+1)与vi相关联;
2.除非没有别的边可以走,否则e(i+1)不应该为Gi = G-{e1,e2,e3,...,ei}中的桥
(3)令i=i+1,返回(2)
利用python中的neyworkx库可以轻松实现。
例:
以本题(2)为例,求这张图的一条欧拉回路。
一·图的生成
利用networkx,将图中的点标记并生成对应的图。
import networkx as nx
import matplotlib.pyplot as plt
g=nx.Graph(name="G")
list1=[(1,2),(2,3),(3,4),(4,8),(8,12),(12,16),(16,15),(15,14),(14,13),(13,9),(9,5),(5,1),(5,6),(6,7),(7,8),(9,10),(10,11