From 9fe033ea88c2f705ec18c232873d056e0c229d72 Mon Sep 17 00:00:00 2001 From: Gaspard Coulet Date: Wed, 28 Apr 2021 23:05:53 +0200 Subject: Initial commit --- sem_5/HLIN501_Graphes/TP-DEVOIRTP/TP5/tp50.cc | 74 +++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 sem_5/HLIN501_Graphes/TP-DEVOIRTP/TP5/tp50.cc (limited to 'sem_5/HLIN501_Graphes/TP-DEVOIRTP/TP5/tp50.cc') diff --git a/sem_5/HLIN501_Graphes/TP-DEVOIRTP/TP5/tp50.cc b/sem_5/HLIN501_Graphes/TP-DEVOIRTP/TP5/tp50.cc new file mode 100644 index 0000000..a4566d0 --- /dev/null +++ b/sem_5/HLIN501_Graphes/TP-DEVOIRTP/TP5/tp50.cc @@ -0,0 +1,74 @@ +#include +#include + +using namespace std; + +const int N=6; +const int INF=9999; //La valeur infinie. + +void floydWarshall(int longueur[][N],int dist[][N],int P[][N]); +void affichage(int dist[][N],int chemin[][N]); +void itineraire(int i,int j,int chemin[][N]); +void itineraireville(int i,int j,int chemin[][N]); +void fermeturetrans(int longueur[][N], int dist[][N], int P[][N], bool fermeture[][N]); +void affichagematrice(int n, bool mat[][N]); + +int main(){ + int longueur[N][N]={{INF,INF,INF,2,INF,2}, //Les longueurs des arcs. + {2,INF,2,2,INF,INF}, //longueur[i][j]=INF si l'arc ij n'existe pas + {INF,INF,INF,2,INF,INF}, + {INF,INF,INF,INF,2,2}, + {INF,INF,2,INF,INF,2}, + {INF,INF,2,INF,INF,INF}}; + int dist[N][N]; //Le tableau des distances. + int chemin[N][N]; //Le tableau de la premiere etape du chemin de i a j. + bool ferm[N][N]; + fermeturetrans(longueur,dist,chemin,ferm); + affichagematrice(N,ferm); + return 0; +} + +void affichagematrice(int n, bool mat[][N]){ + for (int i = 0; i < n; i ++) { + cout<<"[ "; + for (int j = 0 ; j < n; j ++){ + cout<dist[i][k]+dist[k][j]){ + dist[i][j]=dist[i][k]+dist[k][j]; + P[i][j]=P[i][k]; + fermeture[i][j]=true; + } + } + } + } + for (int i =0; i < N; i ++){ + if (dist[i][i]<0){ + std::cout<<"Il existe un cycle orienté de poids <0"<