测试数据:
8 12
1 2
1 3
1 4
1 6
2 6
3 4
3 5
4 7
5 7
5 8
6 8
//Author:PanDaoxi
#include <iostream>
using namespace std;
struct node{
int city,pre;
}que[1001];
int map[11][11],book[11],head=1,tail=1,n,m;
void print(int n){
if(n==1) cout<<que[n].city;
else {
print(que[n].pre);
cout<<"->"<<que[n].city;
}
}
void bfs(){
que[tail].city=1;
que[tail].pre=0;
tail++;
book[1]=1;
while(head<tail){
for(int i=1;i<=n;i++){
if(map[que[head].city][i]==1&&book[i]==0){
que[tail].city=i;
que[tail].pre=head;
tail++;
book[i]=1;
}
if(que[tail-1].city==n){
print(tail-1);
return;
}
}
head++;
}
}
int main(){
cin>>n>>m;
int a,b;
for(int i=1;i<m;i++){
cin>>a>>b;
map[a][b]=1;
map[b][a]=1;
}
bfs();
return 0;
}