欧拉回路:图G,若存在一条路,通过G中每条边有且仅有一次,称这条路为欧拉路,若是存在一条回路通过G每条边有且仅有一次,称这条回路为欧拉回路。具备欧拉回路的图成为欧拉图。
spa
有向图:图连通,有一个顶点出度大入度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; } }