La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

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é


Télécharger ppt "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."

Présentations similaires


Annonces Google