(+84) 236.3827111 ex. 402

Liệt kê tất cả các đường đi trong đồ thị


Thuật toán quya lui liệt kê tất cả các đường đi trong đồ thị

int n, g[10][10], d[10], truoc[10], s, f, dem=0, T[10], L[10];
void docFile(char *tenFile){
ifstream in;
in.open(tenFile);
in>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
int x;
in>>x;
g[i][j]=x;
}
in.close();
}
void duongDi(int s, int f)
{
int tong = 0;
while(s!=f){
cout<
tong = tong + g[f][truoc[f]];
f = truoc[f];
}
cout<
}
void Try(int a){ //Liet ke tat ca cac duong di tu dinh S
d[a]=1;
for(int u=1; u<=n; u++)
if(g[a][u]!=0 && d[u]==0){
truoc [u]=a;
d[u]=1;
if(u==f) duongDi(s,f);
else Try(u);
d[u]=0;
}
}
int main(){
docFile("D:\\DT5.txt");
xuat();
cout<<"Nhap 2 dinh dau va cuoi: "; cin>>s>>f;
khoiTao();
Try(s);
}