欧拉回路输出点的序号
#include<iostream>
#include<cstdio>
#include<vector>
#include<stack>
using namespace std;
const int maxn=1e4+50;
struct edge{
int to;
bool vis;
};
vector<edge>g[maxn];
stack<int>s;
void dfs(int begin)
{
int n=g[begin].size();
for(int i=0;i<n;i++){
if(!g[begin][i].vis){
g[begin][i].vis=true;
dfs(g[begin][i].to);
}
}
s.push(begin);
}
int main()
{
int n,m;
scanf("%d%d",&n,&m);
int u,v;
edge temp,temp1;
for(int i=1;i<=m;i++){
scanf("%d%d",&u,&v);
temp.to=v;
temp.vis=false;
temp1.to=u;
temp1.vis=false;
g[u].push_back(temp);
g[v].push_back(temp1);
}
dfs(1);
while(s.size()){
printf("%d\n",s.top());
s.pop();
}
return 0;
}