#include<bits/stdc++.h>
using namespace std;
struct Graph{
int nodenum;
vector<int>a[10];
}G;
vector<int>a[100];
int path[100],cnt = 0;
int n;
int st,ed;
bool vis[100];
void dfs(int h){
if(vis[h]) return ;
path[++cnt] = h;
vis[h] = 1;
if(h == ed){
printf("路径为:");
for(int i = 1; i <= cnt; i++) printf("%d ",path[i]);
printf("\n");
vis[h] = 0;
cnt--;
return ;
}
for(int i = 0; i<G.a[h].size(); i++){
int to = G.a[h][i];
dfs(to);
}
vis[h] = 0;
cnt--;
return ;
}
int main(){
scanf("%d%d",&st,&ed);
scanf("%d",&n);
int s ,t;
for(int i = 1; i <= n; i++){
scanf("%d%d",&s,&t);
G.a[s].push_back(t);
}
dfs(st);
return 0;
}
dfs打印有向图的起点到终点路径
最新推荐文章于 2022-01-11 15:44:51 发布