Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parCorbin Froment Modifié depuis plus de 10 années
1
1 Test : Hiver 2001 graphe graphe addArc (int S1,int S2, graphe g); Bool arcExiste (int S1, int S2, graphe g); graphe gCopy(graphe g); graphe sousGraph(graphe g, int* tab,int nb); int nbSommets(graphe g);
2
2 Graphe addArc (Graphe g, int S1,int S2); Bool arcExiste (Graphe g, int S1, int S2); Graphe gCopy(Graphe g); Graphe sousGraph(Graphe g, int* tab,int nb); int nbSommets(Graphe g); Algorithme MATRICE_DES_CHEMINS (A) {ou algorithme de Warshall} {Soit A, la matrice des noeuds adjacents; cet algorithme détermine la matrice des chemins P.} 1. [Initialisation] P A 2.[Boucle des différents ordres] Pour k = 1, 2,..., n répéter jusqu'à l'étape 4. 3.[Boucle des rangées] Pour i = 1, 2,..., n répéter l'étape 4. 4.[Boucle des colonnes] Pour j = 1, 2,..., n répéter P ij P ij OU (P ik ET P kj ) 5.[Fin de l'algorithme] Stop Test : Hiver 2001
3
3 Graphe fermetureGraph(Graphe g); { Graphe tmp; BOOL b1,b2,b3; int i,j,k; int nb; nb= nbSommets(g); tmp=gCopy(g); for(k=1;k<=nb;k++) for(i=1;i<=nb;i++) for(j=1;j<=nb;j++) { b1=arcExiste(tmp, i,j); b2=arcExiste(tmp, i,k); b3=arcExiste(tmp, k,j); if((b2 && b3)&& !b1) tmp=addArc(tmp, i,j); } return tmp; } Algorithme MATRICE_DES_CHEMINS (A) 1. [Initialisation] P A 2.[Boucle des différents ordres] Pour k = 1, 2,..., n répéter jusqu'à l'étape 4. 3.[Boucle des rangées] Pour i = 1, 2,..., n répéter l'étape 4. 4.[Boucle des colonnes] Pour j = 1, 2,..., n répéter P ij P ij OU (P ik ET P kj ) 5.[Fin de l'algorithme] Stop Test : Hiver 2001
4
4 Graphe addArc (int S1,int S2); bool arcExiste (int S1, int S2); gCopy(const Graphe &); Graphe & sousGraph(int* tab, int nb); int nbSommets(); Exercice (tiré de lexamen dhiver 2001) int * listerSommets();
5
5 Algorithme MATRICE_DES_CHEMINS (A) {ou algorithme de Warshall} {Soit A, la matrice des noeuds adjacents} 1. [Initialisation] P A 2.[Boucle des différents ordres] Pour k = 1, 2,..., n répéter jusqu'à l'étape 4. 3.[Boucle des rangées] Pour i = 1, 2,..., n répéter l'étape 4. 4.[Boucle des colonnes] Pour j = 1, 2,..., n répéter P ij P ij OU (P ik ET P kj ) 5.[Fin de l'algorithme] Stop Exercice addArc (int S1,int S2); bool arcExiste (int S1, int S2); gCopy(const Graphe &); Graphe & sousGraph(int* tab, int nb); int nbSommets(); int * listerSommets();
6
6 Graphe & fermetureGraph(); { Graphe tmp; bool b1,b2,b3; int nb; int * tab; nb= nbSommets(g); tmp=gCopy(g); tab = listerSommets(tmp); for(int k=0;k<nb;k++) for(int i=0;i<nb;i++) for(int j=0;j<nb;j++) { b1=arcExiste(tmp, tab[i],tab[j]); b2=arcExiste(tmp, tab[i],tab[k]); b3=arcExiste(tmp, tab[k],tab[j]); if((b2 && b3)&& !b1) tmp=addArc(tmp, tab[i],tab[j]); } free(tab); return tmp; } Algorithme MATRICE_DES_CHEMINS (A) 1. [Initialisation] P A 2.[Boucle des différents ordres] Pour k = 1, 2,..., n répéter jusqu'à l'étape 4. 3.[Boucle des rangées] Pour i = 1, 2,..., n répéter l'étape 4. 4.[Boucle des colonnes] Pour j = 1, 2,..., n répéter P ij P ij OU (P ik ET P kj ) 5.[Fin de l'algorithme] Stop Corrigé
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.