您的位置:首页 > 其它

求两点之间所有路径

2019-01-02 14:22 239 查看

求两点之间所有路径

//求两点之间所有路径
#include<bits/stdc++.h>
using namespace std;
const int maxn=10;
vector<int>v[maxn];//邻接表
vector<int>path;//用于保存遍历过程中所走过的顶点值
void DFS(int B,int E){
path.push_back(B);
if(E==B){
for(auto it=path.begin();it!=path.end();it++){
cout<<*it<<" ";
}
cout<<endl;
path.pop_back();
return ;
}
for(int i=0;i<v[B].size();i++){
if(find(path.begin(),path.end(),v[B][i])!=path.end())
continue;
DFS(v[B][i],E);
}
path.pop_back();
}
int main(){
int n,m;//n顶点数,0~n-1, m边数,
cin>>n>>m;
while(m--){
int a,b;//两端点号
cin>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
}
int B,E;
cout<<"起点,终点:";
cin>>B>>E;
cout<<"路径:"<<endl;
DFS(B,E);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: