习题7-1,UVa208,Time:11.6
#include <iostream> #include <vector> #include <cstdio> using namespace std; vector<int>map[10005]; int vis[1005]; int dfs(int s, int t, int n, int tmp[]) { if(s == t) { cout<<"1"; for(int i = 1; i < n; i++) { cout<<" "<<tmp[i]; } cout<<endl; return 0; } for(int i = 0; i < map[s].size(); i++) { if(vis[map[s][i]]) continue; vis[map[s][i]] = 1; tmp[n] = map[s][i]; dfs(map[s][i], t, n+1, tmp); vis[map[s][i]] = 0; } } int main() { freopen("in.txt","r",stdin); int tmp[1005]; int x, y, n; while(cin>>n) { vis[1] = 1; while(cin>>x>>y && x && y) { map[x].push_back(y); map[y].push_back(x); } dfs(1, n, 1, tmp); } return 0; }