TDA graphe (suite)
TDA, SDD et algorithmes basiques 9/40
Edge insertEdge(Vertex v, Vertex w, Object o);
Object removeVertex(Vertex v);
Object removeEdge(Edge e);
Structure de liste des arêtes
TDA, SDD et algorithmes basiques 10/40
Deux conteneurs et :
Nœud:
• une référence vers sa propre position (ou entrée)
dans
• une référence vers les données
Arête:
• une référence vers sa propre position (ou entrée)
dans
• une référence vers les données
• deux références vers les nœuds connectés
Regardons un exemple…
Complexité en espace?
Complexité en temps des méthodes?
Structure de liste des adjacences
TDA, SDD et algorithmes basiques 11/40
Pour éviter le parcours de toutes les arêtes, on
représente les incidences explicitement:
Incidence:
• une référence vers l’arête incidente
Au nœud on ajoute une référence vers le conteneur
des incidences sur .
À l’arête connectant et on ajoute deux références
vers les incidences associées à dans et .
Regardons un exemple…
Complexité en espace?
Complexité en temps des méthodes?
Structure de matrice des adjacences
TDA, SDD et algorithmes basiques 12/40
Pour déterminer les adjacences entre deux nœuds en
temps constant, on ajoute à la structure de liste des
arêtes une matrice des adjacences:
Matrice des adjacences:
•une matrice dont l’élément contient une
référence vers l’arête correspondante (ou nulle si elle
n’existe pas).
À chaque nœud on ajoute un indice (clé) entre et .
Regardons un exemple…
Complexité en espace?
Complexité en temps des méthodes?