as
Architecture des Systèmes d’Information
TAD Graphe
TAD Graphe
Nom: Graphe
Param`etre: Cle, Etiquette, Valeur
Utilise:Booleen, Liste
Op´erations: graphe: →Graphe
estVide: Graphe →Booleen
ajouterSommet: Graphe ×Cle 9Graphe
ajouterArc: Graphe ×Cle ×Cle ×9Graphe
sommetPresent: Graphe ×Cle →Booleen
arcPresent: Graphe ×Cle ×Cle →Booleen
supprimerSommet: Graphe ×Cle 9Graphe
supprimerArc: Graphe ×Cle ×Cle 9Graphe
obtenirSommets: Graphe →Liste<Cle>
obtenirEtiquette: Graphe ×Cle 9Etiquette
fixerEtiquette: Graphe ×Cle ×Etiquette 9Graphe
obtenirValeur: Graphe ×Cle ×Cle 9Valeur
fixerValeur: Graphe ×Cle ×Cle ×Valeur 9Graphe
obtenirSommetsAdjacents: Graphe ×Cle 9Liste<Cle>
Pr´econditions: ajouterSommet(g,s): non sommetPresent(g,s)
ajouterArc(g,s1,s2): non arcPresent(g,s1,s2)
supprimerSommet(g,s): sommetPresent(g,s)
supprimerArc(g,s1,s2): arcPresent(g,s1,s2)
obtenirEtiquette(g,s): sommetPresent(g,s)
obtenirValeur(g,s1,s2): arcPresent(g,s1,s2)
fixerEtiquette(g,s,l): sommetPresent(g,s)
fixerValeur(g,s1,s2,l): arcPresent(g,s1,s2)
obtenirSommetsAdjacents(g,s): sommetPresent(g,s)
Les Graphes v2.2 9 / 49
as
Architecture des Systèmes d’Information
TAD Graphe
TAD GrapheOriente
Nom: GrapheOriente
Param`etre: Cle, Etiquette, Valeur
Utilise:Booleen, Liste
Op´erations: grapheOriente: →GrapheOriente
estVide: GrapheOriente →Booleen
ajouterSommet: GrapheOriente ×Cle 9GrapheOriente
ajouterArc: GrapheOriente ×Cle ×Cle ×9GrapheOriente
sommetPresent: GrapheOriente ×Cle →Booleen
arcPresent: GrapheOriente ×Cle ×Cle →Booleen
supprimerSommet: GrapheOriente ×Cle 9GrapheOriente
supprimerArc: GrapheOriente ×Cle ×Cle 9GrapheOriente
obtenirSommets: GrapheOriente →Liste<Cle>
obtenirEtiquette: GrapheOriente ×Cle 9Etiquette
fixerEtiquette: GrapheOriente ×Cle ×Etiquette 9GrapheOriente
obtenirValeur: GrapheOriente ×Cle ×Cle 9Valeur
fixerValeur: GrapheOriente ×Cle ×Cle ×Valeur 9GrapheOriente
obtenirPredecesseurs: GrapheOriente ×Cle 9Liste<Cle>
obtenirSuccesseurs: GrapheOriente ×Cle 9Liste<Cle>
Pr´econditions: ajouterSommet(g,s): non sommetPresent(g,s)
ajouterArc(g,s1,s2): non arcPresent(g,s)
supprimerSommet(g,s): sommetPresent(g,s)
supprimerArc(g,s1,s2): arcPresent(g,s1,s2)
obtenirEtiquette(g,s): sommetPresent(g,s)
obtenirValeur(g,s1,s2): arcPresent(g,s1,s2)
fixerEtiquette(g,s,l): sommetPresent(g,s)
fixerValeur(g,s1,s2,l): arcPresent(g,s1,s2)
obtenirPredecesseurs(g,s): sommetPresent(g,s)
obtenirSuccesseurs(g,s): sommetPresent(g,s)
Les Graphes v2.2 10 / 49
as
Architecture des Systèmes d’Information
TAD Graphe
Utilisation
Adapter ces deux TAD au besoin
Besoin d’un graphe non orient´e simple (pas d’´etiquette, pas de
valuation) dont les sommets seront identifi´es par des naturels non
nuls (interdiction d’utiliser les op´erations obtenir/fixer
Etiquettes/Valeurs) :
Graphe<Cle=NaturelNonNul>
Graphe<NaturelNonNul>
Besoin d’un graphe non orient´e dont les sommets sont identifi´es par
des naturels non nuls et les arcs ont des valeurs de type r´eel
(interdiction d’utiliser les op´erations obtenir/fixer
Etiquettes) :
Graphe<Cle=NaturelNonNul,Valeur=Reel>
Graphe<NaturelNonNul,,Reel>
Les Graphes v2.2 11 / 49
as
Architecture des Systèmes d’Information
Conception d´etaill´ee Repr´esentation par matrice
Repr´esentation par une matrice d’adjacence 1 / 2
Soit Gun graphe `a nsommets not´es 1,2,...,n
Gest repr´esent´e par une matrice A n ×nde bool´eens, tel que :
si (i,j) est un arc de Galors
A[i,j]←Vrai
sinon
A[i,j]←Faux
finsi
Remarque
Si la graphe est non orient´e, la matrice est sym´etrique
Les Graphes v2.2 12 / 49