定义
欧拉回路:图G,若存在一条路,经过G中每条边有且仅有一次,称这条路为欧拉路,如果存在一条回路经过G每条边有且仅有一次,称这条回路为欧拉回路。具有欧拉回路的图成为欧拉图。
判断原理
有向图:图连通,有一个顶点出度大入度1,有一个顶点入度大出度1,其余都是出度=入度。无向图:图连通,只有两个顶点是奇数度,其余都是偶数度的。
常用处理流程
1.使用DFS或并查集判断连通性2.判定度数是否满足条件 3.获取回路void euler(int u){ for(int v = 0; v < n; v++) if(G[u][v] && !vis[u][v]){ vis[u][v] = vis[v][u] = 1 /* vis[u][v] = 1 for 有向图*/ euler(v); cout << u << "->" << v << endl; } }