欧拉道路
无向图:
连通且最多有2个奇数边的点,则一定存在欧拉道路,是边只能走一遍,点是可以走多次的
如果有2个奇点,必定从其中一个点开始从另外一个点结束。
如果无奇点,则为欧拉回路,任意点出发并回到起始点。
euler(x),的参数x是起点即可。
欧拉回路
有向图:
最多2个点入度不等于出度,且其中一个点的出度比入度大一,另一个点入度比出度大1。
如果有2个点,那么就从这个出度大的开始到入度大的结束
欧拉道路
#include <iostream>
#include <string.h>
using namespace std;
bool map1[105][105];
bool used[105][105];
int indegree[105];
int ourdegree[105];
int m;
int euler(int v){
for(int i=0;i<=m;i++)
if(map1[v][i]&&!used[v][i]){
used[v][i]=used[i][v]=1;
euler(i);
cout << v << " " << i << endl;
}
}
int main(){
int maxn=0;
freopen("in.txt","r",stdin);
memset(map1,0,sizeof(map1));
memset(indegree,0,sizeof(indegree));
int i,j,k,t1,t2,n;
cin >> n >