Vous êtes sur la page 1sur 161

Graphes Arbres Arbres binaires

Graphes et arbres
Mathieu Lefort mathieu.lefort@loria.fr

28 avril 2010

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

1/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

2/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

3/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Graphe orient e

Dnition e un graphe orient est un couple (S, A) e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

4/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Graphe orient e

Dnition e un graphe orient est un couple (S, A) e S est lensemble des sommets du graphe

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

4/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Graphe orient e

Dnition e un graphe orient est un couple (S, A) e S est lensemble des sommets du graphe A est une relation de S S {0, 1}

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

4/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Graphe orient e

Dnition e un graphe orient est un couple (S, A) e S est lensemble des sommets du graphe A est une relation de S S {0, 1} A est lensemble des arcs (couple de sommets) du graphe

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

4/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Graphe orient e

Dnition e un graphe orient est un couple (S, A) e S est lensemble des sommets du graphe A est une relation de S S {0, 1} A est lensemble des arcs (couple de sommets) du graphe Boucle Une boucle est un arc qui relie un sommet ` lui mme a e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

4/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Graphe orient e
Exemple S = {1, 2, 3, 4, 5, 6} A = {(1, 2), (2, 2), (2, 4), (2, 5), (4, 1), (4, 5), (5, 4), (6, 3)}

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

5/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Graphe non orient e

Dnition e un graphe non orient est un couple (S, A) e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

6/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Graphe non orient e

Dnition e un graphe non orient est un couple (S, A) e S est lensemble des sommets du graphe

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

6/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Graphe non orient e

Dnition e un graphe non orient est un couple (S, A) e S est lensemble des sommets du graphe A est une relation de S S {0, 1}

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

6/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Graphe non orient e

Dnition e un graphe non orient est un couple (S, A) e S est lensemble des sommets du graphe A est une relation de S S {0, 1} A est lensemble des arcs (paires de sommets) du graphe

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

6/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Graphe non orient e

Dnition e un graphe non orient est un couple (S, A) e S est lensemble des sommets du graphe A est une relation de S S {0, 1} A est lensemble des arcs (paires de sommets) du graphe les boucles sont interdites

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

6/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Graphe non orient e


Exemple S = {1, 2, 3, 4, 5, 6} A = {(1, 2), (2, 5), (5, 1), (6, 3)}

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

7/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Dnitions e
Sous-graphe Un graphe G = (S , A ) (orient ou non) est un sous graphe de e G = (S, A) si S S et A A.

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

8/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Dnitions e
Sous-graphe Un graphe G = (S , A ) (orient ou non) est un sous graphe de e G = (S, A) si S S et A A. Sous-graphe recouvrant Un sous-graphe recouvrant de G est un sous-graphe qui contient tous les sommets de G .

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

8/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Dnitions e
Sous-graphe Un graphe G = (S , A ) (orient ou non) est un sous graphe de e G = (S, A) si S S et A A. Sous-graphe recouvrant Un sous-graphe recouvrant de G est un sous-graphe qui contient tous les sommets de G . Graphe valu e Un graphe G = (S, A) est dit valu lorsque ses artes ont un poids. e e A est alors une relation de S S dans N.

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

8/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Terminologie
si (u, v ) est un arc dun graphe orient alors on dit que (u, v ) e part du sommet u et arrive au sommet v

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

9/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Terminologie
si (u, v ) est un arc dun graphe orient alors on dit que (u, v ) e part du sommet u et arrive au sommet v si (u, v ) est un arc dun graphe non orient alors on dit que e (u, v ) est incidente aux sommets u et v

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

9/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Terminologie
si (u, v ) est un arc dun graphe orient alors on dit que (u, v ) e part du sommet u et arrive au sommet v si (u, v ) est un arc dun graphe non orient alors on dit que e (u, v ) est incidente aux sommets u et v dans un graphe orient le degr sortant dun sommet est le e e nombre dartes qui partent de ce sommet e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

9/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Terminologie
si (u, v ) est un arc dun graphe orient alors on dit que (u, v ) e part du sommet u et arrive au sommet v si (u, v ) est un arc dun graphe non orient alors on dit que e (u, v ) est incidente aux sommets u et v dans un graphe orient le degr sortant dun sommet est le e e nombre dartes qui partent de ce sommet e dans un graphe orient le degr (r)entrant dun sommet est le e e nombre dartes qui arrive ` ce sommet e a

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

9/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Terminologie
si (u, v ) est un arc dun graphe orient alors on dit que (u, v ) e part du sommet u et arrive au sommet v si (u, v ) est un arc dun graphe non orient alors on dit que e (u, v ) est incidente aux sommets u et v dans un graphe orient le degr sortant dun sommet est le e e nombre dartes qui partent de ce sommet e dans un graphe orient le degr (r)entrant dun sommet est le e e nombre dartes qui arrive ` ce sommet e a dans un graphe orient le degr est la somme des degrs e e e entrant et sortant

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

9/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Terminologie
si (u, v ) est un arc dun graphe orient alors on dit que (u, v ) e part du sommet u et arrive au sommet v si (u, v ) est un arc dun graphe non orient alors on dit que e (u, v ) est incidente aux sommets u et v dans un graphe orient le degr sortant dun sommet est le e e nombre dartes qui partent de ce sommet e dans un graphe orient le degr (r)entrant dun sommet est le e e nombre dartes qui arrive ` ce sommet e a dans un graphe orient le degr est la somme des degrs e e e entrant et sortant dans un graphe non orient le degr dun sommet est le e e nombre dartes qui lui sont incidentes e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

9/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Terminologie
si (u, v ) est un arc dun graphe orient alors on dit que (u, v ) e part du sommet u et arrive au sommet v si (u, v ) est un arc dun graphe non orient alors on dit que e (u, v ) est incidente aux sommets u et v dans un graphe orient le degr sortant dun sommet est le e e nombre dartes qui partent de ce sommet e dans un graphe orient le degr (r)entrant dun sommet est le e e nombre dartes qui arrive ` ce sommet e a dans un graphe orient le degr est la somme des degrs e e e entrant et sortant dans un graphe non orient le degr dun sommet est le e e nombre dartes qui lui sont incidentes e si un sommet est de degr 0 il est dit isol e e
Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 9/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Terminologie
dans un graphe orient (S, A), un chemin de longueur k dun e sommet u ` un sommet v est une squence de sommets a e (u0 , ..., uk ) telle que u0 = u, uk = v et i [1, k], (ui1 , ui ) A

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

10/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Terminologie
dans un graphe orient (S, A), un chemin de longueur k dun e sommet u ` un sommet v est une squence de sommets a e (u0 , ..., uk ) telle que u0 = u, uk = v et i [1, k], (ui1 , ui ) A un chemin est lmentaire si tous ses sommets sont distincts ee

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

10/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Terminologie
dans un graphe orient (S, A), un chemin de longueur k dun e sommet u ` un sommet v est une squence de sommets a e (u0 , ..., uk ) telle que u0 = u, uk = v et i [1, k], (ui1 , ui ) A un chemin est lmentaire si tous ses sommets sont distincts ee un sous chemin p dun chemin p = (u0 , ..., uk ) est une sous squence contigu de ses sommets 0 i j k, e e p = (ui , ..., uj )

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

10/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Terminologie
dans un graphe orient (S, A), un chemin de longueur k dun e sommet u ` un sommet v est une squence de sommets a e (u0 , ..., uk ) telle que u0 = u, uk = v et i [1, k], (ui1 , ui ) A un chemin est lmentaire si tous ses sommets sont distincts ee un sous chemin p dun chemin p = (u0 , ..., uk ) est une sous squence contigu de ses sommets 0 i j k, e e p = (ui , ..., uj ) dans un graphe non orient, la notion correspondante est la e cha ne

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

10/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Terminologie
dans un graphe orient (S, A), un chemin de longueur k dun e sommet u ` un sommet v est une squence de sommets a e (u0 , ..., uk ) telle que u0 = u, uk = v et i [1, k], (ui1 , ui ) A un chemin est lmentaire si tous ses sommets sont distincts ee un sous chemin p dun chemin p = (u0 , ..., uk ) est une sous squence contigu de ses sommets 0 i j k, e e p = (ui , ..., uj ) dans un graphe non orient, la notion correspondante est la e cha ne dans un graphe orient, un chemin (u0 , ..., uk ) forme un e circuit si u0 = uk et k 1

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

10/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Terminologie
dans un graphe orient (S, A), un chemin de longueur k dun e sommet u ` un sommet v est une squence de sommets a e (u0 , ..., uk ) telle que u0 = u, uk = v et i [1, k], (ui1 , ui ) A un chemin est lmentaire si tous ses sommets sont distincts ee un sous chemin p dun chemin p = (u0 , ..., uk ) est une sous squence contigu de ses sommets 0 i j k, e e p = (ui , ..., uj ) dans un graphe non orient, la notion correspondante est la e cha ne dans un graphe orient, un chemin (u0 , ..., uk ) forme un e circuit si u0 = uk et k 1 dans un graphe non orient, la notion correspondante est le e cycle
Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 10/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Terminologie
dans un graphe orient (S, A), un chemin de longueur k dun e sommet u ` un sommet v est une squence de sommets a e (u0 , ..., uk ) telle que u0 = u, uk = v et i [1, k], (ui1 , ui ) A un chemin est lmentaire si tous ses sommets sont distincts ee un sous chemin p dun chemin p = (u0 , ..., uk ) est une sous squence contigu de ses sommets 0 i j k, e e p = (ui , ..., uj ) dans un graphe non orient, la notion correspondante est la e cha ne dans un graphe orient, un chemin (u0 , ..., uk ) forme un e circuit si u0 = uk et k 1 dans un graphe non orient, la notion correspondante est le e cycle un graphe non orient sans cycle est dit acyclique e
Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 10/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Terminologie
un graphe orient est fortement connexe si chaque sommet est e accessible ` partir de nimporte quel autre a

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

11/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Terminologie
un graphe orient est fortement connexe si chaque sommet est e accessible ` partir de nimporte quel autre a les composantes fortement connexes dun graphe orient sont e les classes dquivalence de sommets induites par la relation e sont accessibles lun ` partir de lautre a

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

11/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Terminologie
un graphe orient est fortement connexe si chaque sommet est e accessible ` partir de nimporte quel autre a les composantes fortement connexes dun graphe orient sont e les classes dquivalence de sommets induites par la relation e sont accessibles lun ` partir de lautre a les composantes fortement connexes pour lexemple sont {1, 2, 4, 5}, {3} et {6}

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

11/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Terminologie
un graphe orient est fortement connexe si chaque sommet est e accessible ` partir de nimporte quel autre a les composantes fortement connexes dun graphe orient sont e les classes dquivalence de sommets induites par la relation e sont accessibles lun ` partir de lautre a les composantes fortement connexes pour lexemple sont {1, 2, 4, 5}, {3} et {6} un graphe non orient est connexe si chaque paire de sommets e est reli par une cha e ne

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

11/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Terminologie
un graphe orient est fortement connexe si chaque sommet est e accessible ` partir de nimporte quel autre a les composantes fortement connexes dun graphe orient sont e les classes dquivalence de sommets induites par la relation e sont accessibles lun ` partir de lautre a les composantes fortement connexes pour lexemple sont {1, 2, 4, 5}, {3} et {6} un graphe non orient est connexe si chaque paire de sommets e est reli par une cha e ne les composantes connexes dun graphe non orient sont les e classes dquivalence de sommets induites par la relation est e accessible ` partir de a

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

11/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Terminologie
un graphe orient est fortement connexe si chaque sommet est e accessible ` partir de nimporte quel autre a les composantes fortement connexes dun graphe orient sont e les classes dquivalence de sommets induites par la relation e sont accessibles lun ` partir de lautre a les composantes fortement connexes pour lexemple sont {1, 2, 4, 5}, {3} et {6} un graphe non orient est connexe si chaque paire de sommets e est reli par une cha e ne les composantes connexes dun graphe non orient sont les e classes dquivalence de sommets induites par la relation est e accessible ` partir de a les composantes connexes pour lexemple sont {1, 2, 5}, {3, 6} et {4}
Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 11/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

12/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Parcours en largeur

Principe on parcourt dabord toutes les artes dun sommet e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

13/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Parcours en largeur

Principe on parcourt dabord toutes les artes dun sommet e puis on parcourt rcursivement les sommets trouvs e e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

13/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Parcours en largeur

Principe on parcourt dabord toutes les artes dun sommet e puis on parcourt rcursivement les sommets trouvs e e lorsque lon a ni de parcourir une composante connexe, on repart dun sommet non encore visit (si il en reste) e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

13/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Parcours en largeur

Principe on parcourt dabord toutes les artes dun sommet e puis on parcourt rcursivement les sommets trouvs e e lorsque lon a ni de parcourir une composante connexe, on repart dun sommet non encore visit (si il en reste) e Application Arbre de recouvrement de poids minimum (voir apr`s). e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

13/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Parcours en largeur

Algorithme fonction ParcoursLargeurGraphe((S, A)) pour s S faire etat[s] inconnu pour a A faire etat[a] inconnu pour s S faire si etat[s] = inconnu alors ParcoursLargeurSommet((S, A), s)

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

14/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Parcours en largeur
Algorithme fonction ParcoursLargeurSommet((S, A), s) etat[s] visit e AS AretesIncidentes(s) AS est une le tant que AS non vide faire (x, y ) Defiler(AS) si etat[(x, y )] = inconnu alors si etat[y ] = inconnu alors etat[(x, y )] d e couvert etat[y ] visit e pour a AretesIncidentes(y ) faire Enfiler(AS, a) sinon etat[(x, y )] retour
Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 15/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Parcours en largeur

Complexit e on parcourt chaque sommet une fois

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

16/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Parcours en largeur

Complexit e on parcourt chaque sommet une fois on parcourt chaque arte une fois e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

16/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Parcours en largeur

Complexit e on parcourt chaque sommet une fois on parcourt chaque arte une fois e T (n) = O(|S| + |A|)

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

16/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Parcours en profondeur

Principe on choisit une arte parmi toutes les artes incidentes e e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

17/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Parcours en profondeur

Principe on choisit une arte parmi toutes les artes incidentes e e puis on parcourt rcursivement le sommet choisi avant de e parcourir les autres artes e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

17/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Parcours en profondeur

Principe on choisit une arte parmi toutes les artes incidentes e e puis on parcourt rcursivement le sommet choisi avant de e parcourir les autres artes e lorsque lon a ni de parcourir une composante connexe, on repart dun sommet non encore visit (si il en reste) e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

17/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Parcours en profondeur

Principe on choisit une arte parmi toutes les artes incidentes e e puis on parcourt rcursivement le sommet choisi avant de e parcourir les autres artes e lorsque lon a ni de parcourir une composante connexe, on repart dun sommet non encore visit (si il en reste) e Application Chercher un chemin dans un labyrinthe.

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

17/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Parcours en profondeur

Algorithme fonction ParcoursProfondeurGraphe((S, A)) pour s S faire etat[s] inconnu pour a A faire etat[a] inconnu pour s S faire si etat[s] = inconnu alors ParcoursProfondeurSommet((S, A), s)

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

18/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Parcours en profondeur
Algorithme fonction ParcoursProfondeurSommet((S, A), s) etat[s] visit e AS AretesIncidentes(s) AS est une pile tant que AS non vide faire (x, y ) Depiler(AS) si etat[(x, y )] = inconnu alors si etat[y ] = inconnu alors etat[(x, y )] d e couvert etat[y ] visit e pour a AretesIncidentes(y ) faire Empiler(AS, a) sinon etat[(x, y )] retour
Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 19/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Parcours en profondeur

Complexit e on parcourt chaque sommet une fois

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

20/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Parcours en profondeur

Complexit e on parcourt chaque sommet une fois on parcourt chaque arte une fois e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

20/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Parcours en profondeur

Complexit e on parcourt chaque sommet une fois on parcourt chaque arte une fois e T (n) = O(|S| + |A|)

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

20/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

21/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Algorithme de Dijkstra

Contexte soit un graphe valu connexe avec des poids positifs ou nuls e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

22/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Algorithme de Dijkstra

Contexte soit un graphe valu connexe avec des poids positifs ou nuls e on cherche les plus courts chemins ` partir dune origine a unique

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

22/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Algorithme de Dijkstra

Contexte soit un graphe valu connexe avec des poids positifs ou nuls e on cherche les plus courts chemins ` partir dune origine a unique il sagit dun probl`me ` sous structure optimale e a

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

22/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Algorithme de Dijkstra
Algorithme fonction Dijkstra((S, A), s) s le sommet de dpart e pour s S faire dist[s] prec[s] NULL dist[s] 0 AS S tant que AS = faire x SupprimerMin(AS) on rcup`re le sommet non e e encore visit de distance minimale e pour (x, y ) A faire si dist[y ] > dist[x] + A[(x, y )] alors dist[y ] dist[x] + A[(x, y )] prec[y ] x
Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 23/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Algorithme de Dijkstra

Complexit e la boucle tant que sexcute |S| fois e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

24/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Algorithme de Dijkstra

Complexit e la boucle tant que sexcute |S| fois e SupprimerMin est en O(|S|)

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

24/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Algorithme de Dijkstra

Complexit e la boucle tant que sexcute |S| fois e SupprimerMin est en O(|S|) chaque arte est parcourue une fois e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

24/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Algorithme de Dijkstra

Complexit e la boucle tant que sexcute |S| fois e SupprimerMin est en O(|S|) chaque arte est parcourue une fois e on a donc T (n) = O(|S|2 + |A|) = O(|S|2 )

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

24/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Algorithme de Bellman-Ford

Contexte soit un graphe valu connexe sans circuit de poids strictement e ngatif e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

25/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Algorithme de Bellman-Ford

Contexte soit un graphe valu connexe sans circuit de poids strictement e ngatif e on cherche les plus courts chemins ` partir dune origine a unique

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

25/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Algorithme de Bellman-Ford

Contexte soit un graphe valu connexe sans circuit de poids strictement e ngatif e on cherche les plus courts chemins ` partir dune origine a unique il sagit dun probl`me ` sous structure optimale e a

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

25/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Algorithme de Bellman-Ford

Contexte soit un graphe valu connexe sans circuit de poids strictement e ngatif e on cherche les plus courts chemins ` partir dune origine a unique il sagit dun probl`me ` sous structure optimale e a lalgorithme dtecte si il y a un circuit de poids strictement e ngatif e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

25/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Algorithme de Bellman-Ford
Algorithme fonction Bellman-Ford((S, A), s) s le sommet de dpart e pour s S faire dist[s] prec[s] NULL dist[s] 0 pour i 1 ` |S| 1 faire a pour (x, y ) A faire si dist[y ] > dist[x] + A[(x, y )] alors dist[y ] dist[x] + A[(x, y )] prec[y ] x pour (x, y ) A faire si dist[y ] > dist[x] + A[(x, y )] alors retourner erreur circuit ngatif e
Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 26/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Algorithme de Bellman-Ford

Complexit e la premi`re boucle sexcute |S| fois e e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

27/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Algorithme de Bellman-Ford

Complexit e la premi`re boucle sexcute |S| fois e e la deuxi`me boucle sexcute |A| fois e e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

27/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Algorithme de Bellman-Ford

Complexit e la premi`re boucle sexcute |S| fois e e la deuxi`me boucle sexcute |A| fois e e la vrication est en (|A|) e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

27/ 64

Graphes Arbres Arbres binaires

Dnitions e Parcours Plus court chemin

Algorithme de Bellman-Ford

Complexit e la premi`re boucle sexcute |S| fois e e la deuxi`me boucle sexcute |A| fois e e la vrication est en (|A|) e on a donc T (n) = O(|S||A| + |A|) = O(|S||A|)

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

27/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

28/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

29/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Arbre

Dnitions e un arbre est un graphe non orient connexe acyclique e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

30/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Arbre

Dnitions e un arbre est un graphe non orient connexe acyclique e une fort est un graphe non orient acyclique e e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

30/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Arbre

Dnitions e un arbre est un graphe non orient connexe acyclique e une fort est un graphe non orient acyclique e e un arbre enracin est un arbre dont lun des sommets est dit e racine et impose le sens de parcours de larbre

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

30/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Arbre

Dnitions e un arbre est un graphe non orient connexe acyclique e une fort est un graphe non orient acyclique e e un arbre enracin est un arbre dont lun des sommets est dit e racine et impose le sens de parcours de larbre les sommets dun arbre sont appels noeuds e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

30/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Arbre

Dnitions e un arbre est un graphe non orient connexe acyclique e une fort est un graphe non orient acyclique e e un arbre enracin est un arbre dont lun des sommets est dit e racine et impose le sens de parcours de larbre les sommets dun arbre sont appels noeuds e un noeud sans ls est une feuille, sinon cest un noeud interne

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

30/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Arbre

Dnitions e un arbre est un graphe non orient connexe acyclique e une fort est un graphe non orient acyclique e e un arbre enracin est un arbre dont lun des sommets est dit e racine et impose le sens de parcours de larbre les sommets dun arbre sont appels noeuds e un noeud sans ls est une feuille, sinon cest un noeud interne le sous arbre de racine x est larbre compos des descendants e de x enracin en x e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

30/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Arbre
Dnitions e soit x un noeud dun arbre T de racine r

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

31/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Arbre
Dnitions e soit x un noeud dun arbre T de racine r
si y est un noeud sur lunique chemin de r ` x alors y est un a anctre de x et x est un descendant de y e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

31/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Arbre
Dnitions e soit x un noeud dun arbre T de racine r
si y est un noeud sur lunique chemin de r ` x alors y est un a anctre de x et x est un descendant de y e si T contient larte (y , x) alors y est le p`re de x et x est le e e ls de y (la racine na pas de p`re) e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

31/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Arbre
Dnitions e soit x un noeud dun arbre T de racine r
si y est un noeud sur lunique chemin de r ` x alors y est un a anctre de x et x est un descendant de y e si T contient larte (y , x) alors y est le p`re de x et x est le e e ls de y (la racine na pas de p`re) e

la hauteur dun noeud est la longueur du chemin entre le noeud et la racine

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

31/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Arbre
Dnitions e soit x un noeud dun arbre T de racine r
si y est un noeud sur lunique chemin de r ` x alors y est un a anctre de x et x est un descendant de y e si T contient larte (y , x) alors y est le p`re de x et x est le e e ls de y (la racine na pas de p`re) e

la hauteur dun noeud est la longueur du chemin entre le noeud et la racine le niveau n dun arbre est lensemble des noeuds de hauteur n

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

31/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Arbre
Dnitions e soit x un noeud dun arbre T de racine r
si y est un noeud sur lunique chemin de r ` x alors y est un a anctre de x et x est un descendant de y e si T contient larte (y , x) alors y est le p`re de x et x est le e e ls de y (la racine na pas de p`re) e

la hauteur dun noeud est la longueur du chemin entre le noeud et la racine le niveau n dun arbre est lensemble des noeuds de hauteur n un arbre ordonn est un arbre enracin dont les ls de chaque e e noeud sont ordonns e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

31/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

32/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Proprits ee
Soit G = (S, A) un graphe non orient. Les armations suivantes e sont quivalentes : e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

33/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Proprits ee
Soit G = (S, A) un graphe non orient. Les armations suivantes e sont quivalentes : e G est un arbre

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

33/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Proprits ee
Soit G = (S, A) un graphe non orient. Les armations suivantes e sont quivalentes : e G est un arbre deux sommets quelconques de G sont relis par un unique e chemin lmentaire ee

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

33/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Proprits ee
Soit G = (S, A) un graphe non orient. Les armations suivantes e sont quivalentes : e G est un arbre deux sommets quelconques de G sont relis par un unique e chemin lmentaire ee G est connexe, mais si une arte quelconque est te de A, le e oe graphe nest plus connexe

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

33/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Proprits ee
Soit G = (S, A) un graphe non orient. Les armations suivantes e sont quivalentes : e G est un arbre deux sommets quelconques de G sont relis par un unique e chemin lmentaire ee G est connexe, mais si une arte quelconque est te de A, le e oe graphe nest plus connexe G est connexe et |A| = |S| 1

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

33/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Proprits ee
Soit G = (S, A) un graphe non orient. Les armations suivantes e sont quivalentes : e G est un arbre deux sommets quelconques de G sont relis par un unique e chemin lmentaire ee G est connexe, mais si une arte quelconque est te de A, le e oe graphe nest plus connexe G est connexe et |A| = |S| 1 G est acyclique et |A| = |S| 1

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

33/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Proprits ee
Soit G = (S, A) un graphe non orient. Les armations suivantes e sont quivalentes : e G est un arbre deux sommets quelconques de G sont relis par un unique e chemin lmentaire ee G est connexe, mais si une arte quelconque est te de A, le e oe graphe nest plus connexe G est connexe et |A| = |S| 1 G est acyclique et |A| = |S| 1 G est acyclique, mais si une arte quelconque est ajoute ` A, e e a le graphe rsultant contient un cycle e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

33/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

34/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Dnitions e
Arbre de recouvrement un arbre de recouvrement dun graphe non orient connexe est e un sous-graphe recouvrant qui est un arbre

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

35/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Dnitions e
Arbre de recouvrement un arbre de recouvrement dun graphe non orient connexe est e un sous-graphe recouvrant qui est un arbre un arbre de recouvrement nest pas unique sauf si le graphe est un arbre

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

35/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Dnitions e
Arbre de recouvrement un arbre de recouvrement dun graphe non orient connexe est e un sous-graphe recouvrant qui est un arbre un arbre de recouvrement nest pas unique sauf si le graphe est un arbre Arbre de recouvrement de poids minimum Larbre de recouvrement de poids minimum dun graphe valu est e larbre de recouvrement dont la somme des poids des artes est e minimum.

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

35/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Dnitions e
Arbre de recouvrement un arbre de recouvrement dun graphe non orient connexe est e un sous-graphe recouvrant qui est un arbre un arbre de recouvrement nest pas unique sauf si le graphe est un arbre Arbre de recouvrement de poids minimum Larbre de recouvrement de poids minimum dun graphe valu est e larbre de recouvrement dont la somme des poids des artes est e minimum. Remarque Le parcours en largeur dun graphe donne larbre de recouvrement des plus courts chemin (en nombre dartes). e
Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 35/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Arbre de recouvrement de poids minimum


fonction Prim((S, A), s) s le sommet de dpart e etat[S] inconnu, etat[A] inconnu, etat[s] visit e pour a AretesIncidentes(s) faire Inserer(AS, a, A[a]) AS est une le de priorit e tant que AS = faire (x, y ) SupprimerMin(AS) si etat[(x, y )] = inconnu alors si etat[y ] = inconnu alors etat[(x, y )] visit e etat[y ] visit e pour a AretesIncidentes(y ) faire Inserer(AS, a, A[a]) sinon etat[(x, y )] retour
Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 36/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Algorithme de Prim

Complexit e la boucle tant que sexcute |A| fois e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

37/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Algorithme de Prim

Complexit e la boucle tant que sexcute |A| fois e SupprimerMin est en O(|A|)

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

37/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Algorithme de Prim

Complexit e la boucle tant que sexcute |A| fois e SupprimerMin est en O(|A|) chaque arte est parcourue une fois e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

37/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Algorithme de Prim

Complexit e la boucle tant que sexcute |A| fois e SupprimerMin est en O(|A|) chaque arte est parcourue une fois e on a donc T (n) = O(|A|2 + |A|) = O(|A|2 )

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

37/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Algorithme de Prim

Complexit e la boucle tant que sexcute |A| fois e SupprimerMin est en O(|A|) chaque arte est parcourue une fois e on a donc T (n) = O(|A|2 + |A|) = O(|A|2 ) comme gnralement |A| > |S| on pourrait remplacer la e e condition AS = par s, etat[s] = inconnu

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

37/ 64

Graphes Arbres Arbres binaires

Dnitions e Proprits ee Arbres de recouvrement

Algorithme de Prim - exemple

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

38/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

39/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Dnitions e

Arbre binaire un arbre binaire est un arbre enracin, ordonn et dont chaque e e noeud a au maximum deux ls

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

40/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Dnitions e

Arbre binaire un arbre binaire est un arbre enracin, ordonn et dont chaque e e noeud a au maximum deux ls on appelle le premier sous-arbre, sous-arbre gauche

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

40/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Dnitions e

Arbre binaire un arbre binaire est un arbre enracin, ordonn et dont chaque e e noeud a au maximum deux ls on appelle le premier sous-arbre, sous-arbre gauche on appelle le deuxi`me sous-arbre, sous-arbre droit e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

40/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Dnitions e

Arbre binaire un arbre binaire est un arbre enracin, ordonn et dont chaque e e noeud a au maximum deux ls on appelle le premier sous-arbre, sous-arbre gauche on appelle le deuxi`me sous-arbre, sous-arbre droit e un arbre binaire est dit complet si tous les noeuds ont zro ou e deux ls un arbre binaire est dit parfait si toutes les feuilles sont ` la a mme distance de la racine e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

40/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

41/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Parcours prxe e

Principe Soit A un arbre binaire on parcourt le noeud

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

42/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Parcours prxe e

Principe Soit A un arbre binaire on parcourt le noeud on parcourt rcursivement le sous-arbre gauche e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

42/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Parcours prxe e

Principe Soit A un arbre binaire on parcourt le noeud on parcourt rcursivement le sous-arbre gauche e on parcourt rcursivement le sous-arbre droit e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

42/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Parcours prxe e

Principe Soit A un arbre binaire on parcourt le noeud on parcourt rcursivement le sous-arbre gauche e on parcourt rcursivement le sous-arbre droit e Application arbre fonctionnel

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

42/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Parcours inxe

Principe Soit A un arbre binaire on parcourt rcursivement le sous-arbre gauche e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

43/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Parcours inxe

Principe Soit A un arbre binaire on parcourt rcursivement le sous-arbre gauche e on parcourt le noeud

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

43/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Parcours inxe

Principe Soit A un arbre binaire on parcourt rcursivement le sous-arbre gauche e on parcourt le noeud on parcourt rcursivement le sous-arbre droit e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

43/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Parcours inxe

Principe Soit A un arbre binaire on parcourt rcursivement le sous-arbre gauche e on parcourt le noeud on parcourt rcursivement le sous-arbre droit e Application arbre dexpressions logiques

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

43/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Parcours suxe

Principe soit A un arbre binaire

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

44/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Parcours suxe

Principe soit A un arbre binaire on parcourt rcursivement le sous-arbre gauche e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

44/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Parcours suxe

Principe soit A un arbre binaire on parcourt rcursivement le sous-arbre gauche e on parcourt rcursivement le sous-arbre droit e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

44/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Parcours suxe

Principe soit A un arbre binaire on parcourt rcursivement le sous-arbre gauche e on parcourt rcursivement le sous-arbre droit e on parcourt le noeud

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

44/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Parcours suxe

Principe soit A un arbre binaire on parcourt rcursivement le sous-arbre gauche e on parcourt rcursivement le sous-arbre droit e on parcourt le noeud Application notation polonaise inverse e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

44/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

45/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

ABR
Dnition e un arbre binaire de recherche est un arbre binaire

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

46/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

ABR
Dnition e un arbre binaire de recherche est un arbre binaire si y est un noeud du sous arbre gauche de x alors clef (y ) clef (x)

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

46/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

ABR
Dnition e un arbre binaire de recherche est un arbre binaire si y est un noeud du sous arbre gauche de x alors clef (y ) clef (x) si y est un noeud du sous arbre droit de x alors clef (y ) clef (x)

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

46/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

ABR
Dnition e un arbre binaire de recherche est un arbre binaire si y est un noeud du sous arbre gauche de x alors clef (y ) clef (x) si y est un noeud du sous arbre droit de x alors clef (y ) clef (x) Proprits ee la hauteur maximale dun arbre (de recherche) est n

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

46/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

ABR
Dnition e un arbre binaire de recherche est un arbre binaire si y est un noeud du sous arbre gauche de x alors clef (y ) clef (x) si y est un noeud du sous arbre droit de x alors clef (y ) clef (x) Proprits ee la hauteur maximale dun arbre (de recherche) est n la hauteur minimale dun arbre de recherche est log2 (n)

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

46/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Exemple

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

47/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Rechercher

Algorithme fonction Rechercher(r , x) r la racine et x llment ` ee a rechercher si r = NULL ou clef (r ) = x alors retourner r si clef (r ) > x alors retourner Rechercher(ls gauche(r ), x) sinon retourner Rechercher(ls droit(r ), x)

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

48/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Insrer e

Algorithme fonction Inserer(r , x) r la racine et x llment ` insrer ee a e si r = NULL alors retourner nouveauABR(x) si clef (r ) x alors ls gauche(r ) Inserer(ls gauche(r ), x) retourner r sinon ls droit(r ) Inserer(ls droit(r ), x) retourner r

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

49/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Minimum

Algorithme fonction Minimum(r ) r la racine de labr si r = NULL alors retourner NULL si ls gauche(r ) = NULL alors retourner r sinon retourner Minimum(ls gauche(r ))

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

50/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Successeur
Algorithme fonction Successeur(x) x = NULL si ls droit(x) = NULL alors retourner Minimum(ls droit(x)) sinon y p`re(x) e on tant que y = NULL et x = ls droit(y ) faire recherche le premier lment suprieur en remontant la hirarchie ee e e x y y p`re(y ) e si y = NULL alors x est le maximum de labr retourner NULL sinon retourner y
Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 51/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Supprimer

Principe on recherche dabord llment ` supprimer ee a

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

52/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Supprimer

Principe on recherche dabord llment ` supprimer ee a si cest une feuille, on la supprime simplement en supprimant le lien depuis son p`re e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

52/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Supprimer

Principe on recherche dabord llment ` supprimer ee a si cest une feuille, on la supprime simplement en supprimant le lien depuis son p`re e si llment na quun sous arbre, alors on le remplace par la ee racine de son sous arbre

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

52/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Supprimer

Principe on recherche dabord llment ` supprimer ee a si cest une feuille, on la supprime simplement en supprimant le lien depuis son p`re e si llment na quun sous arbre, alors on le remplace par la ee racine de son sous arbre si llment a deux sous arbres, on recherche son successeur ee (qui sera le minimum de son sous arbre droit et naura donc au maximum quun sous arbre) et on les intervertit ; on supprime alors rcursivement llment ` son nouvel emplacement e ee a

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

52/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Complexit e

tous les algorithmes sont en O(h)

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

53/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Complexit e

tous les algorithmes sont en O(h) on a donc Tmin (n) = O(log2 (n))

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

53/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Complexit e

tous les algorithmes sont en O(h) on a donc Tmin (n) = O(log2 (n)) et Tmax (n) = O(n)

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

53/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

54/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

AVL

Dnition e Un AVL est un arbre binaire de recherche tel que, pour chaque noeud, la dirence de hauteur entre ses deux sous arbres est au e maximum de 1.

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

55/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

AVL

Dnition e Un AVL est un arbre binaire de recherche tel que, pour chaque noeud, la dirence de hauteur entre ses deux sous arbres est au e maximum de 1. Proprit ee La hauteur dun AVL est en O(log2 (n))

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

55/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

AVL
Preuve Soit n(h) le nombre minimum de noeud dans un AVL de hauteur h. n(1) = 1 n(2) = 2 n(h) = 1 + n(h 1) + n(h 2) > 2n(h 2) > 2i n(h 2i) n(h) > 2
h/2 1

n(1)

log2 (n(h)) > h/2 1 h < 2log2 (n(h)) + 2


Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 56/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Rotations gauche et droite

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

57/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Doubles rotations

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

58/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Application des rotations

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

59/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Application des rotations simples - justication

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

60/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

Application des rotations doubles - justication

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

61/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

AVL - insrer e

Principe on ins`re llment comme dans un ABR e ee

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

62/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

AVL - insrer e

Principe on ins`re llment comme dans un ABR e ee on remonte de llment ` la racine et si on trouve un noeud ee a pour lequel la proprit dquilibre entre ses sous arbres nest ee e pas respecte, on rpare larbre en utilisant les rotations e e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

62/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

AVL - supprimer

Principe on supprime llment comme dans un ABR ee

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

63/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

AVL - supprimer

Principe on supprime llment comme dans un ABR ee on remonte de llment ` la racine et si on trouve un noeud ee a pour lequel la proprit dquilibre entre ses sous arbres nest ee e pas respecte, on rpare larbre en utilisant les rotations e e

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

63/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

AVL - complexit e

tous les algorithmes sont en O(h)

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

64/ 64

Graphes Arbres Arbres binaires

Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e

AVL - complexit e

tous les algorithmes sont en O(h) de par la proprit des AVL, on a T (n) = O(log2 (n)) ee

Mathieu Lefort mathieu.lefort@loria.fr

Graphes et arbres

64/ 64

Vous aimerez peut-être aussi