请看完后点个赞,谢谢
//欧拉回路模版 22-04-08
#include<bits/stdc++.h>
using namespace std;
int g[110][110],d[110];//保存每个顶点的度
int n,m,x,y,cnt=1;//计数器
int vis[1010];//保存路径
void dfs(int u)
{
for (int v=1;v<=m;v++)
{
if (g[u][v]==1)
{
g[u][v]=g[v][u]=0;
dfs(v);
}
}
//记录路径
vis[cnt++]=u;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin>>n>>m;
memset(g,0,sizeof(g));
for (int i=1;i<=m;i++)
{
cin>>x>>y;
g[x][y]=1;g[y][x]=1;
d[x]++;d[y]++;
}
int start=1;//找奇点
for (int i=1;i<=n;i++)
{
if (d[i]%2==1)
{
start=i;break;
}
}
dfs(start);
for (int i=1;i<cnt;i++) cout<<vis[i]<<" ";
return 0;
}