Post

CM5 AVL

Télécharger le CM5 AVL en pdf

Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198

Page 1 : INFORMATIQUE 3V. A V LEva ANSERMIN & Renaud VERIN & Romuald GRIGNONv1.01

page 1

Page 2 : I. Optimisation de la recherche dans un ABRE.ANSERMIN R.VERIN R.GRIGNON2

page 2

Page 3 : ABR : Rappel•L’arbre binaire de recherche est un type arbre binaire permettant d’optimiser la recherche d’élément dans l’arbre. Il obéit à des règles de construction.E.ANSERMIN R.VERIN R.GRIGNON3

page 3

Page 4 : Configuration de l’ABR•Construire un ABR en insérant les éléments suivant dans l’ordre : 1 , 3 , 5 , 8, 9 E.ANSERMIN R.VERIN R.GRIGNON4

page 4

Page 5 : Configuration de l’ABR•Construire un ABR en insérant les éléments suivant dans l’ordre : 1 , 3 , 5 , 8, 9E.ANSERMIN R.VERIN R.GRIGNON5

page 5

Page 6 : Configuration de l’ABR•Construire un ABR en insérant les éléments suivant dans l’ordre : 1 , 3 , 5 , 8, 9•Dans un arbre filiforme, la complexité de l’algorithme de recherche est en OnE.ANSERMIN R.VERIN R.GRIGNON6

page 6

Page 7 : Complexité et équilibre•Complexité: Le nombre d’appels récursifs pour la recherche ou les autres opérations dépend de la configuration de l’ABR.•Dans le pire des cas, l’arbre est filiforme, l’opération est en On.•Dans le meilleur des cas, l’arbre est équilibré entre sa partie droite et gauche Olog2𝑛Meilleur casPire casE.ANSERMIN R.VERIN R.GRIGNON7

page 7

Page 8 : Arbre équilibré•Un arbre équilibré est un arbre qui maintient une profondeur équilibrée entre ses branches. Chaque nœud interne a le nombre maximum de fils. Arbre équilibréArbre non-équilibré ou dégénéréE.ANSERMIN R.VERIN R.GRIGNON8

page 8

Page 9 : II. AVL : introductionE.ANSERMIN R.VERIN R.GRIGNON9

page 9

Page 10 : AVL : définition•Un AVL, arbre binaire de recherche automatiquement équilibré, est un arbre binaire de recherche « auto-équilibré »: il reste équilibré après opération. •Une série d’ajouts ou de suppressions dans un ABR peut déséquilibrer l’arbre et conduire à des opérations de complexité On dans le pire des cas. Les arbres AVL utilisent des algorithmes de rééquilibrage pour éviter cela.E.ANSERMIN R.VERIN R.GRIGNON10

page 10

Page 11 : Facteur d’équilibrageArbre équilibréArbre non-équilibré ou dégénéré•Pour chaque nœud, on considère la hauteur du nœud.•Lors d’une opération de transformation, la hauteur d’un nœud peut être modifiée On calcule alors un facteur d’équilibre de l’arbre :hauteur du sous arbre droit - hauteur du sous arbre gauche •Il est recalculé après chaque opération •Il permet de définir si un rééquilibrage est nécessaireE.ANSERMIN R.VERIN R.GRIGNON11

page 11

Page 12 : Facteur d’équilibrageArbre équilibréArbre non-équilibré ou dégénéréFacteur d’équilibre = 2•Pour chaque nœud, on considère la hauteur du nœud•Lors d’une opération de transformation, la hauteur d’un nœud peut être modifiée On calcule alors un facteur d’équilibre de l’arbre :hauteur du sous arbre droit - hauteur du sous arbre gauche •Il est recalculé après chaque opération •Il permet de définir si un rééquilibrage est nécessaireFacteur d’équilibre = 1E.ANSERMIN R.VERIN R.GRIGNON12

page 12

Page 13 : Facteur d’équilibrage•Pour chaque nœud, on considère la hauteur du nœud•Lors d’une opération de transformation, la hauteur d’un nœud peut être modifiée On calcule alors un facteur d’équilibre de l’arbre :hauteur du sous arbre droit - hauteur du sous arbre gauche •Il est recalculé après chaque opération •Il permet de définir si un rééquilibrage est nécessaire• Un arbre est équilibré  facteur d’équilibre 2 pour tous les nœuds.E.ANSERMIN R.VERIN R.GRIGNON13

page 13

Page 14 : Construction d’un AVL• Structure d’un nœud d’un AVL: Structure Arbre :elmt : Element // contenu du nœud fg, fd : pointeur sur structure Arbre // fils gauche et droitequilibre : entier // facteur d’équilibre du nœud = hauteur sous arbre droit – hauteur sous-arbre gauche. E.ANSERMIN R.VERIN R.GRIGNON14

page 14

Page 15 : Construction d’un AVL•Déclaration et initialisation d’un nœud FONCTION creerArbrer: Element : ptr sur ArbreVARIABLEnoeud : ptr sur ArbreDEBUTnoeud ←reserverMemoireArbreelmtnoeud ←rfgnoeud ←?? fdnoeud ←??equilibrenoeud ←??RETOURNER noeudFINE.ANSERMIN R.VERIN R.GRIGNON15

page 15

Page 16 : Construction d’un AVL•Déclaration et initialisation d’un nœud FONCTION creerArbrer: Element : ptr sur ArbreVARIABLEnoeud : ptr sur ArbreDEBUTnoeud ←reserverMemoireArbreelmtnoeud ←rfgnoeud ←NULL // Le noeud n’a pas de fils à sa créationfdnoeud ←NULLequilibrenoeud ←0 // Le noeud n’a pas de fils: son equilibre est 0RETOURNER noeudFINE.ANSERMIN R.VERIN R.GRIGNON16

page 16

Page 17 : III. AVL : opérationsE.ANSERMIN R.VERIN R.GRIGNON17

page 17

Page 18 : Opération de recherche•Puisque l’AVL respecte les propriétés d’un ABR, l’algorithme de recherche ne change pas : •Recherche dans le sous-arbre gauche si la valeur recherchée est inférieure au nœud•Recherche dans le sous-arbre droit si la valeur recherchée est supérieure au nœud•L’opération de recherche ne modifie pas l’arbre : pas besoin de rééquilibrage. FONCTION recherchea: pointeur sur Arbre, e: Element : pointeur sur ArbreDEBUTSI a EST EGAL A NULL AlorsRETOURNER NULLSINON SI elementa EST EGAL A e AlorsRETOURNER aSINON SI e EST INF. STRICT. A elementa ALORSRETOURNER recherchefga,eSINONRETOURNER recherchefda,eFIN SIFinE.ANSERMIN R.VERIN R.GRIGNON18

page 18

Page 19 : Insertion•1ère étape : l’insertion se déroule de la même manière que pour un ABR : 10528151218•Algorithme :FONCTION insertionABRa: pointeur sur Arbre, e: Element : pointeur sur ArbreDEBUTSI a EST EGAL A NULL ALORSRETOURNER creerArbree SINON SI e EST INF. STRICT. A elementa ALORSfga ← insertionABRfga, eSINON SI e SUP. STRICT. A elementa Alorsfda ← insertionABRfda, eFIN SIRETOURNER aFINExemple : insertionABRA, 9E.ANSERMIN R.VERIN R.GRIGNON19

page 19

Page 20 : Insertion•1ère étape : l’insertion se déroule de la même manière que pour un ABR : 105281512189•Algorithme :FONCTION insertionABRa: pointeur sur Arbre, e: Element : pointeur sur ArbreDEBUTSI a EST EGAL A NULL ALORSRETOURNER creerArbree SINON SI e EST INF. STRICT. A elementa ALORSfga ← insertionABRfga, eSINON SI e SUP. STRICT. A elementa Alorsfda ← insertionABRfda, eFIN SIRETOURNER aFINE.ANSERMIN R.VERIN R.GRIGNON20

page 20

Page 21 : Insertion•2ème étape : il faut mettre à jour l’équilibre des nœuds.105281512189105281512180000000E.ANSERMIN R.VERIN R.GRIGNON21

page 21

Page 22 : Insertion•2ème étape : il faut mettre à jour l’équilibre des nœuds.•Seuls les nœuds ancètres ont un facteur d’équilibre modifé.1052815121891052815121800000000101-1000E.ANSERMIN R.VERIN R.GRIGNON22

page 22

Page 23 : Insertion•2ème étape : il faut mettre à jour l’équilibre des nœuds.•Dans ce cas, pas besoin de rééquilibrer l’arbre. 1052815121891052815121800000000101-1000E.ANSERMIN R.VERIN R.GRIGNON23

page 23

Page 24 : Insertion•2ème étape : il faut mettre à jour l’équilibre des nœuds.Principes : •Le nœud inséré est une feuille : son équilibre est à 0. 10528151218000000090E.ANSERMIN R.VERIN R.GRIGNON24

page 24

Page 25 : Insertion•2ème étape : il faut mettre à jour l’équilibre des nœuds.Principes : •Le nœud inseré est une feuille : son équilibre est à 0. •L’ insertion d’un enfant induit un changement dans l’équilibre du nœud parent.•-1 si le nouveau nœud est à gauche•+1 si le nouveau nœud est à droite 10528151218010000090E.ANSERMIN R.VERIN R.GRIGNON25

page 25

Page 26 : Insertion•2ème étape : il faut mettre à jour l’équilibre des nœuds.Principes : •Le nœud inseré est une feuille : son équilibre est à 0. •L’ insertion d’un enfant induit un changement dans l’équilibre du nœud parent.•-1 si le nouveau nœud est à gauche•+1 si le nouveau nœud est à droite •Ce changement est effectué sur tous les ancêtres10528151218010010-190E.ANSERMIN R.VERIN R.GRIGNON26

page 26

Page 27 : Insertion•2ème étape : il faut mettre à jour l’équilibre des nœud Algorithme :FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptr sur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1// on ajoute un élément : l’équilibre va changerRETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h // difference de -1 si on insère à gaucheSINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0// cas où l’élément est déjà dans l’arbreRETOURNER a// pas de changement d’équilibreFIN SISI h DIFFERENT DE 0 ALORS// s’il y a changement…equilibre a ← equilibrea + h// … mise à jour du facteur d’équilibreSI equilibrea EST EGAL A 0 ALORS // si arbre équilibré à nouveau…h ← 0// ses ancêtres ne changent pas SINONh ← 1FIN SIFIN SI RETOURNER AFINh : différence d’équilibreE.ANSERMIN R.VERIN R.GRIGNON27

page 27

Page 28 : Insertion105281512180000000•Exemple : insertionAVLa, 9E.ANSERMIN R.VERIN R.GRIGNON28

page 28

Page 29 : Insertion105281512180000000ah = ??•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINE.ANSERMIN R.VERIN R.GRIGNON29

page 29

Page 30 : Insertion105281512180000000a•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??E.ANSERMIN R.VERIN R.GRIGNON30

page 30

Page 31 : Insertion105281512180000000a•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??E.ANSERMIN R.VERIN R.GRIGNON31

page 31

Page 32 : Insertion105281512180000000aa•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??E.ANSERMIN R.VERIN R.GRIGNON32

page 32

Page 33 : Insertion10528151218000000•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??0aaE.ANSERMIN R.VERIN R.GRIGNON33

page 33

Page 34 : Insertion10528151218000000•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??0aaE.ANSERMIN R.VERIN R.GRIGNON34

page 34

Page 35 : Insertion10528151218000000•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??0aaE.ANSERMIN R.VERIN R.GRIGNON35

page 35

Page 36 : Insertion10528151218000000•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??0aaE.ANSERMIN R.VERIN R.GRIGNON36

page 36

Page 37 : Insertion10528151218000000•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??0aaE.ANSERMIN R.VERIN R.GRIGNON37

page 37

Page 38 : Insertion10528151218000000a•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??0aaE.ANSERMIN R.VERIN R.GRIGNON38

page 38

Page 39 : Insertion10528151218000000a•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??0aaE.ANSERMIN R.VERIN R.GRIGNON39

page 39

Page 40 : Insertion10528151218000000a•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??0aaE.ANSERMIN R.VERIN R.GRIGNON40

page 40

Page 41 : Insertion10528151218000000a•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??0aaE.ANSERMIN R.VERIN R.GRIGNON41

page 41

Page 42 : Insertion10528151218000000a•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??0aaE.ANSERMIN R.VERIN R.GRIGNON42

page 42

Page 43 : Insertion10528151218000000a•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??0aaa NULLE.ANSERMIN R.VERIN R.GRIGNON43

page 43

Page 44 : Insertion10528151218000000a•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??0aaa NULLE.ANSERMIN R.VERIN R.GRIGNON44

page 44

Page 45 : Insertion10528151218000000a•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??0aaa NULLE.ANSERMIN R.VERIN R.GRIGNON45

page 45

Page 46 : Insertion10528151218000000h = 1a•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFIN0aaa NULLE.ANSERMIN R.VERIN R.GRIGNON46

page 46

Page 47 : Insertion10528151218000000a90•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 10aaE.ANSERMIN R.VERIN R.GRIGNON47

page 47

Page 48 : Insertion10528151218000000a90•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 10aaE.ANSERMIN R.VERIN R.GRIGNON48

page 48

Page 49 : Insertion1052815121800000900a•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 10aaE.ANSERMIN R.VERIN R.GRIGNON49

page 49

Page 50 : Insertion1052815121801000090a•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 10aaE.ANSERMIN R.VERIN R.GRIGNON50

page 50

Page 51 : Insertion1052815121801000090a•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 10aaE.ANSERMIN R.VERIN R.GRIGNON51

page 51

Page 52 : Insertion1052815121801000090a•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 10aaE.ANSERMIN R.VERIN R.GRIGNON52

page 52

Page 53 : Insertion1052815121801000090•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 10aaE.ANSERMIN R.VERIN R.GRIGNON53

page 53

Page 54 : Insertion1052815121801000090•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 10aaE.ANSERMIN R.VERIN R.GRIGNON54

page 54

Page 55 : Insertion1052815121801000090•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 10aaE.ANSERMIN R.VERIN R.GRIGNON55

page 55

Page 56 : Insertion105281512180100100aa90•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 1E.ANSERMIN R.VERIN R.GRIGNON56

page 56

Page 57 : Insertion1052815121801000090•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 11aaE.ANSERMIN R.VERIN R.GRIGNON57

page 57

Page 58 : Insertion1052815121801000090•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 11aaE.ANSERMIN R.VERIN R.GRIGNON58

page 58

Page 59 : Insertion105281512180100100a90•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 1E.ANSERMIN R.VERIN R.GRIGNON59

page 59

Page 60 : Insertion105281512180100100a90•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 1E.ANSERMIN R.VERIN R.GRIGNON60

page 60

Page 61 : Insertion105281512180100100ah = -190•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINE.ANSERMIN R.VERIN R.GRIGNON61

page 61

Page 62 : Insertion105281512180100100a90•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = -1E.ANSERMIN R.VERIN R.GRIGNON62

page 62

Page 63 : Insertion10528151218010010-1a90•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = -1E.ANSERMIN R.VERIN R.GRIGNON63

page 63

Page 64 : Insertion10528151218010010-1a90•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = -1E.ANSERMIN R.VERIN R.GRIGNON64

page 64

Page 65 : Insertion10528151218010010-1a90•Exemple : insertionAVLa, 9FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 1E.ANSERMIN R.VERIN R.GRIGNON65

page 65

Page 66 : Insertion10528151218010010-190•Exemple : insertionAVLa, 1E.ANSERMIN R.VERIN R.GRIGNON66

page 66

Page 67 : Insertion10528151218010010-1ah = ??90•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINE.ANSERMIN R.VERIN R.GRIGNON67

page 67

Page 68 : Insertion10528151218010010-1a90•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??E.ANSERMIN R.VERIN R.GRIGNON68

page 68

Page 69 : Insertion10528151218010010-1a90•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??E.ANSERMIN R.VERIN R.GRIGNON69

page 69

Page 70 : Insertion10528151218010010-1a90•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??E.ANSERMIN R.VERIN R.GRIGNON70

page 70

Page 71 : Insertion•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??10528151218010010-1a90aE.ANSERMIN R.VERIN R.GRIGNON71

page 71

Page 72 : Insertion•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??10528151218010010-1a90aE.ANSERMIN R.VERIN R.GRIGNON72

page 72

Page 73 : Insertion•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??10528151218010010-1a90aE.ANSERMIN R.VERIN R.GRIGNON73

page 73

Page 74 : Insertion•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??10528151218010010-1a90aE.ANSERMIN R.VERIN R.GRIGNON74

page 74

Page 75 : Insertion•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??10528151218010010-1a90aaE.ANSERMIN R.VERIN R.GRIGNON75

page 75

Page 76 : Insertion•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??10528151218010010-1a90aaE.ANSERMIN R.VERIN R.GRIGNON76

page 76

Page 77 : Insertion•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??10528151218010010-1a90aaE.ANSERMIN R.VERIN R.GRIGNON77

page 77

Page 78 : •Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINInsertion10528151218010010-1a90aah = ??E.ANSERMIN R.VERIN R.GRIGNON78

page 78

Page 79 : •Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINInsertion10528151218010010-1a90aaa NULLh = ??E.ANSERMIN R.VERIN R.GRIGNON79

page 79

Page 80 : •Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINInsertion10528151218010010-1a90aah = ??a NULLE.ANSERMIN R.VERIN R.GRIGNON80

page 80

Page 81 : Insertion•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = ??10528151218010010-1a90aaa NULLE.ANSERMIN R.VERIN R.GRIGNON81

page 81

Page 82 : Insertionh = 1•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFIN10528151218010010-1a90aaa NULLE.ANSERMIN R.VERIN R.GRIGNON82

page 82

Page 83 : Insertion1•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 110528151218010010-1a90aaE.ANSERMIN R.VERIN R.GRIGNON83

page 83

Page 84 : •Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINInsertion10528151218010010-1a90aa1h = 1E.ANSERMIN R.VERIN R.GRIGNON84

page 84

Page 85 : Insertionh = -1•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFIN10528151218010010-1a90aa1E.ANSERMIN R.VERIN R.GRIGNON85

page 85

Page 86 : Insertion•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = -110528151218010010-1a90aa1E.ANSERMIN R.VERIN R.GRIGNON86

page 86

Page 87 : •Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINInsertion10528151218010-10-190a1h = -11aaE.ANSERMIN R.VERIN R.GRIGNON87

page 87

Page 88 : •Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINInsertion10528151218010-10-190a1h = -11aaE.ANSERMIN R.VERIN R.GRIGNON88

page 88

Page 89 : Insertion10528151218010-110-1ah = 190a1•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINaE.ANSERMIN R.VERIN R.GRIGNON89

page 89

Page 90 : Insertion10528151218010-10-1901•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 11aaE.ANSERMIN R.VERIN R.GRIGNON90

page 90

Page 91 : Insertion10528151218010-10-1901•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 11aaE.ANSERMIN R.VERIN R.GRIGNON91

page 91

Page 92 : Insertion10528151218010-10-1901•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = -11aaE.ANSERMIN R.VERIN R.GRIGNON92

page 92

Page 93 : Insertion10528151218010-10-1901•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = -11aaE.ANSERMIN R.VERIN R.GRIGNON93

page 93

Page 94 : Insertion10528151218010-100-1a90a1•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = -1E.ANSERMIN R.VERIN R.GRIGNON94

page 94

Page 95 : Insertion10528151218010-100-1a90a1•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = -1E.ANSERMIN R.VERIN R.GRIGNON95

page 95

Page 96 : Insertion10528151218010-100-1a90a1•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 0E.ANSERMIN R.VERIN R.GRIGNON96

page 96

Page 97 : Insertion10528151218010-100-1a901•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 0E.ANSERMIN R.VERIN R.GRIGNON97

page 97

Page 98 : Insertion10528151218010-100-1a901•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 0E.ANSERMIN R.VERIN R.GRIGNON98

page 98

Page 99 : Insertion10528151218010-100-1a901•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 0E.ANSERMIN R.VERIN R.GRIGNON99

page 99

Page 100 : Insertion10528151218010-100-1a901•Exemple : insertionAVLa, 1FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptr sur entier : ptrsur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + hSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINh = 0E.ANSERMIN R.VERIN R.GRIGNON100

page 100

Page 101 : Insertion•3ème étape : le rééquilibrage.•Algorithme :FONCTION insertionAVLa: ptr Arbre, e: Element, h: ptrsur entier : ptr sur ArbreDEBUTSI a EST EGAL A NULL ALORSh=1RETOURNER creerArbreeSINON Si e INF. STRICT. A elementa ALORSfga ← insertionAVLfga, e, hh ← -h SINON Si e SUP. STRICT. A elementa ALORSfda ← insertionAVLfda, e, hSINONh= 0RETOURNER aFIN SISI h DIFFERENT DE 0 ALORSequilibre a ← equilibrea + ha ← equilibrageAVLaSI equilibrea EST EGAL A 0 ALORS h ← 0SINONh ← 1FIN SIFIN SI RETOURNER aFINE.ANSERMIN R.VERIN R.GRIGNON101

page 101

Page 102 : Suppression•Ensuite, un ou plusieurs rééquilibrages peuvent être nécessaires après opération .•1. L’opération de suppression fonctionne comme avec les ABR :•Si le nœud à supprimer est une feuille ou n’a qu’un fils, on supprime le nœud / on le remplace par son fils.•Sinon on doit échanger les valeurs du nœud à supprimer avec la valeur min du sous arbre droit ou la valeur max du sous arbre gauche.E.ANSERMIN R.VERIN R.GRIGNON102

page 102

Page 103 : Suppression•2. Comme pour l’insertion, on met à jour l’équilibre des nœuds en remontant à partir du nœud supprimé :•3. On rééquilibre l’AVL si nécessaire cf. plus bas, fonction equilibrageAVL 1052815121800000001052151218000-100E.ANSERMIN R.VERIN R.GRIGNON103

page 103

Page 104 : SuppressionFONCTION suppressionAVLa: ptr sur Arbre, e: element, h: ptr sur Element : pointeur sur ArbreVARIABLEtmp : ptr sur ArbreDEBUTSI a EST EGAL A NULL ALORSh ← 1RETOURNER ASINON SI e SUP. STRICT. A elementa ALORS// parcours pour trouver le noeudfda ← suppressionAVLfda, eSINON SI e INF. STRICT. A elementa ALORSfga ← suppressionAVLfga, eh ← -hSINON SI existeFilsDroita ALORS // si il y a un fils droit…fga ← suppMinAVL fda, h, adresseelementa // … on cherche le minimum dedans SINONtmp ← a// le noeud n’a qu’un fils gauche ou aucun filsa ← fga // échange avec le fils gauche et suppressionlibérertmph ← -1FIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibre a + hSI equilibrea EST EGAL A 0 ALORSh←0SINONh←1FIN SIFIN SIRETOURNER aFIN•Algorithme:E.ANSERMIN R.VERIN R.GRIGNON104SI a EST EGAL A NULL ALORSh ← 0FIN SI

page 104

Page 105 : Suppression•Algorithme:FONCTION suppMinAVLa: Arbre; h: pointeur sur entier, pe: ptr sur Element : ptr sur ArbreVARIABLE tmp : ptr sur ArbreDEBUTSI fga EST EGAL A NULL ALORS// Si il n’y a plus de fils gauche… pe ← elementa// … alors on a trouvé la plus petite valeur de l’arbreh ← -1tmp ← aa ← fda// on remplace le noeud actuel par le fils droit…liberertmp// … et on libère la mémoire du noeudRETOURNERaSINONfga ← suppMinAVLfga, h, pe// appel récursif sur le sous-arbre de gaucheh ← -hFIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibrea + h// mise à jour du facteur d’équilibrageSI equilibrea EST EGAL A 0 ALORSh ← -1SINONh ← 0FIN SIFIN SIRETOURNER aFINE.ANSERMIN R.VERIN R.GRIGNON105

page 105

Page 106 : FONCTION suppressionAVLa: ptr sur Arbre, e: element, h: ptr sur Element : pointeur sur ArbreVARIABLEtmp : ptr sur ArbreDEBUTSI a EST EGAL A NULL ALORSh ← 1RETOURNER ASINON SI e SUP. STRICT. A elementa ALORSfda ← suppressionAVLfda, eSINON SI e INF. STRICT. A elementa ALORSfga ← suppressionAVLfga, eh ← -hSINON SI existeFilsDroita ALORS fda ← suppMinAVL fda, h, adresseelementa SINONtmp ← aa ← fga libérertmph ← -1FIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibre a + hSI equilibrea EST EGAL A 0 ALORSh←0SINONh←1FIN SIFIN SIRETOURNER aFINSuppressionsuppressionAVLa, 20, hh=??a0-1000000001E.ANSERMIN R.VERIN R.GRIGNON106SI a EST EGAL A NULL ALORSh ← 0FIN SI

page 106

Page 107 : FONCTION suppressionAVLa: ptr sur Arbre, e: element, h: ptr sur Element : pointeur sur ArbreVARIABLEtmp : ptr sur ArbreDEBUTSI a EST EGAL A NULL ALORSh ← 1RETOURNER ASINON SI e SUP. STRICT. A elementa ALORSfda ← suppressionAVLfda, eSINON SI e INF. STRICT. A elementa ALORSfga ← suppressionAVLfga, eh ← -hSINON SI existeFilsDroita ALORS fda ← suppMinAVL fda, h, adresseelementa SINONtmp ← aa ← fga libérertmph ← -1FIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibre a + hSI equilibrea EST EGAL A 0 ALORSh←0SINONh←1FIN SIFIN SIRETOURNER aFINSuppressionh=??a0-1000000001suppressionAVLa, 20, hE.ANSERMIN R.VERIN R.GRIGNON107SI a EST EGAL A NULL ALORSh ← 0FIN SI

page 107

Page 108 : FONCTION suppressionAVLa: ptr sur Arbre, e: element, h: ptr sur Element : pointeur sur ArbreVARIABLEtmp : ptr sur ArbreDEBUTSI a EST EGAL A NULL ALORSh ← 1RETOURNER ASINON SI e SUP. STRICT. A elementa ALORSfda ← suppressionAVLfda, eSINON SI e INF. STRICT. A elementa ALORSfga ← suppressionAVLfga, eh ← -hSINON SI existeFilsDroita ALORS fda ← suppMinAVL fda, h, adresseelementa SINONtmp ← aa ← fga libérertmph ← -1FIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibre a + hSI equilibrea EST EGAL A 0 ALORSh←0SINONh←1FIN SIFIN SIRETOURNER aFINSuppressionh=??a0-1000000001suppressionAVLa, 20, hE.ANSERMIN R.VERIN R.GRIGNON108SI a EST EGAL A NULL ALORSh ← 0FIN SI

page 108

Page 109 : Suppressionh=??0-1000000001suppressionAVLa, 20, hFONCTION suppressionAVLa: ptr sur Arbre, e: element, h: ptr sur Element : pointeur sur ArbreVARIABLEtmp : ptr sur ArbreDEBUTSI a EST EGAL A NULL ALORSh ← 1RETOURNER ASINON SI e SUP. STRICT. A elementa ALORSfda ← suppressionAVLfda, eSINON SI e INF. STRICT. A elementa ALORSfga ← suppressionAVLfga, eh ← -hSINON SI existeFilsDroita ALORS fda ← suppMinAVL fda, h, adresseelementa SINONtmp ← aa ← fga libérertmph ← -1FIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibre a + hSI equilibrea EST EGAL A 0 ALORSh←0SINONh←1FIN SIFIN SIRETOURNER aFINaE.ANSERMIN R.VERIN R.GRIGNON109SI a EST EGAL A NULL ALORSh ← 0FIN SI

page 109

Page 110 : Suppressionh=??a0-1000000001suppressionAVLa, 20, hFONCTION suppressionAVLa: ptr sur Arbre, e: element, h: ptr sur Element : pointeur sur ArbreVARIABLEtmp : ptr sur ArbreDEBUTSI a EST EGAL A NULL ALORSh ← 1RETOURNER ASINON SI e SUP. STRICT. A elementa ALORSfda ← suppressionAVLfda, eSINON SI e INF. STRICT. A elementa ALORSfga ← suppressionAVLfga, eh ← -hSINON SI existeFilsDroita ALORS fda ← suppMinAVL fda, h, adresseelementa SINONtmp ← aa ← fga libérertmph ← -1FIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibre a + hSI equilibrea EST EGAL A 0 ALORSh←0SINONh←1FIN SIFIN SIRETOURNER aFINaE.ANSERMIN R.VERIN R.GRIGNON110SI a EST EGAL A NULL ALORSh ← 0FIN SI

page 110

Page 111 : Suppressionh=??0-1000000001suppressionAVLa, 20, hFONCTION suppressionAVLa: ptr sur Arbre, e: element, h: ptr sur Element : pointeur sur ArbreVARIABLEtmp : ptr sur ArbreDEBUTSI a EST EGAL A NULL ALORSh ← 1RETOURNER ASINON SI e SUP. STRICT. A elementa ALORSfda ← suppressionAVLfda, eSINON SI e INF. STRICT. A elementa ALORSfga ← suppressionAVLfga, eh ← -hSINON SI existeFilsDroita ALORS fda ← suppMinAVL fda, h, adresseelementa SINONtmp ← aa ← fga libérertmph ← -1FIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibre a + hSI equilibrea EST EGAL A 0 ALORSh←0SINONh←1FIN SIFIN SIRETOURNER aFINaaE.ANSERMIN R.VERIN R.GRIGNON111SI a EST EGAL A NULL ALORSh ← 0FIN SI

page 111

Page 112 : Suppressionh=??0-1000000001suppressionAVLa, 20, hFONCTION suppressionAVLa: ptr sur Arbre, e: element, h: ptr sur Element : pointeur sur ArbreVARIABLEtmp : ptr sur ArbreDEBUTSI a EST EGAL A NULL ALORSh ← 1RETOURNER ASINON SI e SUP. STRICT. A elementa ALORSfda ← suppressionAVLfda, eSINON SI e INF. STRICT. A elementa ALORSfga ← suppressionAVLfga, eh ← -hSINON SI existeFilsDroita ALORS fda ← suppMinAVL fda, h, adresseelementa SINONtmp ← aa ← fga libérertmph ← -1FIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibre a + hSI equilibrea EST EGAL A 0 ALORSh←0SINONh←1FIN SIFIN SIRETOURNER aFINaaE.ANSERMIN R.VERIN R.GRIGNON112SI a EST EGAL A NULL ALORSh ← 0FIN SI

page 112

Page 113 : Suppressionh=??0-1000000001suppressionAVLa, 20, hFONCTION suppressionAVLa: ptr sur Arbre, e: element, h: ptr sur Element : pointeur sur ArbreVARIABLEtmp : ptr sur ArbreDEBUTSI a EST EGAL A NULL ALORSh ← 1RETOURNER ASINON SI e SUP. STRICT. A elementa ALORSfda ← suppressionAVLfda, eSINON SI e INF. STRICT. A elementa ALORSfga ← suppressionAVLfga, eh ← -hSINON SI existeFilsDroita ALORS fda ← suppMinAVL fda, h, adresseelementa SINONtmp ← aa ← fga libérertmph ← -1FIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibre a + hSI equilibrea EST EGAL A 0 ALORSh←0SINONh←1FIN SIFIN SIRETOURNER aFINaaE.ANSERMIN R.VERIN R.GRIGNON113SI a EST EGAL A NULL ALORSh ← 0FIN SI

page 113

Page 114 : Suppressionh=??0-1000000001suppressionAVLa, 20, hFONCTION suppressionAVLa: ptr sur Arbre, e: element, h: ptr sur Element : pointeur sur ArbreVARIABLEtmp : ptr sur ArbreDEBUTSI a EST EGAL A NULL ALORSh ← 1RETOURNER ASINON SI e SUP. STRICT. A elementa ALORSfda ← suppressionAVLfda, eSINON SI e INF. STRICT. A elementa ALORSfga ← suppressionAVLfga, eh ← -hSINON SI existeFilsDroita ALORS fda ← suppMinAVL fda, h, adresseelementa SINONtmp ← aa ← fga libérertmph ← -1FIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibre a + hSI equilibrea EST EGAL A 0 ALORSh←0SINONh←1FIN SIFIN SIRETOURNER aFINaaE.ANSERMIN R.VERIN R.GRIGNON114SI a EST EGAL A NULL ALORSh ← 0FIN SI

page 114

Page 115 : Suppressionh=??0-1000000001suppressionAVLa, 20, hFONCTION suppressionAVLa: ptr sur Arbre, e: element, h: ptr sur Element : pointeur sur ArbreVARIABLEtmp : ptr sur ArbreDEBUTSI a EST EGAL A NULL ALORSh ← 1RETOURNER ASINON SI e SUP. STRICT. A elementa ALORSfda ← suppressionAVLfda, eSINON SI e INF. STRICT. A elementa ALORSfga ← suppressionAVLfga, eh ← -hSINON SI existeFilsDroita ALORS fda ← suppMinAVL fda, h, adresseelementa SINONtmp ← aa ← fga libérertmph ← -1FIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibre a + hSI equilibrea EST EGAL A 0 ALORSh←0SINONh←1FIN SIFIN SIRETOURNER aFINaaE.ANSERMIN R.VERIN R.GRIGNON115SI a EST EGAL A NULL ALORSh ← 0FIN SI

page 115

Page 116 : suppressionAVLA, 20, hFONCTION suppMinAVLa: Arbre; h: pointeur sur entier, pe: ptr sur Element : ptr sur ArbreVARIABLE tmp : ptr sur ArbreDEBUTSI fga EST EGAL A NULL ALORSpe ← elementah ← -1tmp ← aa ← fdaliberertmpRETOURNERaSINONfga ← suppMinAVLfga, h, peh ← -hFIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibrea + hSI equilibrea EST EGAL A 0 ALORSh ← -1SINONh ← 0FIN SIFIN SIRETOURNER aFINSuppressionh=??pe= 20a0-1000000001E.ANSERMIN R.VERIN R.GRIGNON116

page 116

Page 117 : Suppressionh=??pe= 20a0-1000000001suppressionAVLA, 20, hFONCTION suppMinAVLa: Arbre; h: pointeur sur entier, pe: ptr sur Element : ptr sur ArbreVARIABLE tmp : ptr sur ArbreDEBUTSI fga EST EGAL A NULL ALORSpe ← elementah ← -1tmp ← aa ← fdaliberertmpRETOURNERaSINONfga ← suppMinAVLfga, h, peh ← -hFIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibrea + hSI equilibrea EST EGAL A 0 ALORSh ← -1SINONh ← 0FIN SIFIN SIRETOURNER aFINE.ANSERMIN R.VERIN R.GRIGNON117

page 117

Page 118 : Suppressionh=??pe= 20a0-1000000001suppressionAVLA, 20, hFONCTION suppMinAVLa: Arbre; h: pointeur sur entier, pe: ptr sur Element : ptr sur ArbreVARIABLE tmp : ptr sur ArbreDEBUTSI fga EST EGAL A NULL ALORSpe ← elementah ← -1tmp ← aa ← fdaliberertmpRETOURNERaSINONfga ← suppMinAVLfga, h, peh ← -hFIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibrea + hSI equilibrea EST EGAL A 0 ALORSh ← -1SINONh ← 0FIN SIFIN SIRETOURNER aFINE.ANSERMIN R.VERIN R.GRIGNON118

page 118

Page 119 : Suppressionh=??pe= 20a0-1000000001suppressionAVLA, 20, hFONCTION suppMinAVLa: Arbre; h: pointeur sur entier, pe: ptr sur Element : ptr sur ArbreVARIABLE tmp : ptr sur ArbreDEBUTSI fga EST EGAL A NULL ALORSpe ← elementah ← -1tmp ← aa ← fdaliberertmpRETOURNERaSINONfga ← suppMinAVLfga, h, peh ← -hFIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibrea + hSI equilibrea EST EGAL A 0 ALORSh ← -1SINONh ← 0FIN SIFIN SIRETOURNER aFINE.ANSERMIN R.VERIN R.GRIGNON119

page 119

Page 120 : suppressionAVLA, 20, hFONCTION suppMinAVLa: Arbre; h: pointeur sur entier, pe: ptr sur Element : ptr sur ArbreVARIABLE tmp : ptr sur ArbreDEBUTSI fga EST EGAL A NULL ALORSpe ← elementah ← -1tmp ← aa ← fdaliberertmpRETOURNERaSINONfga ← suppMinAVLfga, h, peh ← -hFIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibrea + hSI equilibrea EST EGAL A 0 ALORSh ← -1SINONh ← 0FIN SIFIN SIRETOURNER aFINSuppressionh=??pe= 20aa0-1000000001E.ANSERMIN R.VERIN R.GRIGNON120

page 120

Page 121 : suppressionAVLA, 20, hFONCTION suppMinAVLa: Arbre; h: pointeur sur entier, pe: ptr sur Element : ptr sur ArbreVARIABLE tmp : ptr sur ArbreDEBUTSI fga EST EGAL A NULL ALORSpe ← elementah ← -1tmp ← aa ← fdaliberertmpRETOURNERaSINONfga ← suppMinAVLfga, h, peh ← -hFIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibrea + hSI equilibrea EST EGAL A 0 ALORSh ← -1SINONh ← 0FIN SIFIN SIRETOURNER aFINSuppressionh=??pe= 20aa0-1000000001E.ANSERMIN R.VERIN R.GRIGNON121

page 121

Page 122 : suppressionAVLA, 20, hFONCTION suppMinAVLa: Arbre; h: pointeur sur entier, pe: ptr sur Element : ptr sur ArbreVARIABLE tmp : ptr sur ArbreDEBUTSI fga EST EGAL A NULL ALORSpe ← elementah ← -1tmp ← aa ← fdaliberertmpRETOURNERaSINONfga ← suppMinAVLfga, h, peh ← -hFIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibrea + hSI equilibrea EST EGAL A 0 ALORSh ← -1SINONh ← 0FIN SIFIN SIRETOURNER aFINSuppressionh=??pe= 20aa0-1000000001E.ANSERMIN R.VERIN R.GRIGNON122

page 122

Page 123 : suppressionAVLA, 20, hFONCTION suppMinAVLa: Arbre; h: pointeur sur entier, pe: ptr sur Element : ptr sur ArbreVARIABLE tmp : ptr sur ArbreDEBUTSI fga EST EGAL A NULL ALORSpe ← elementah ← -1tmp ← aa ← fdaliberertmpRETOURNERaSINONfga ← suppMinAVLfga, h, peh ← -hFIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibrea + hSI equilibrea EST EGAL A 0 ALORSh ← -1SINONh ← 0FIN SIFIN SIRETOURNER aFINSuppressionh=??pe= 40aa0-1000000001E.ANSERMIN R.VERIN R.GRIGNON123

page 123

Page 124 : suppressionAVLA, 20, hFONCTION suppMinAVLa: Arbre; h: pointeur sur entier, pe: ptr sur Element : ptr sur ArbreVARIABLE tmp : ptr sur ArbreDEBUTSI fga EST EGAL A NULL ALORSpe ← elementah ← -1tmp ← aa ← fdaliberertmpRETOURNERaSINONfga ← suppMinAVLfga, h, peh ← -hFIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibrea + hSI equilibrea EST EGAL A 0 ALORSh ← -1SINONh ← 0FIN SIFIN SIRETOURNER aFINSuppressionh=-1pe= 40aa0-1000000001E.ANSERMIN R.VERIN R.GRIGNON124

page 124

Page 125 : suppressionAVLA, 20, hFONCTION suppMinAVLa: Arbre; h: pointeur sur entier, pe: ptr sur Element : ptr sur ArbreVARIABLE tmp : ptr sur ArbreDEBUTSI fga EST EGAL A NULL ALORSpe ← elementah ← -1tmp ← aa ← fdaliberertmpRETOURNERaSINONfga ← suppMinAVLfga, h, peh ← -hFIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibrea + hSI equilibrea EST EGAL A 0 ALORSh ← -1SINONh ← 0FIN SIFIN SIRETOURNER aFINSuppressionh=-1pe= 40aatmp0-1000000001E.ANSERMIN R.VERIN R.GRIGNON125

page 125

Page 126 : suppressionAVLA, 20, hFONCTION suppMinAVLa: Arbre; h: pointeur sur entier, pe: ptr sur Element : ptr sur ArbreVARIABLE tmp : ptr sur ArbreDEBUTSI fga EST EGAL A NULL ALORSpe ← elementah ← -1tmp ← aa ← fdaliberertmpRETOURNERaSINONfga ← suppMinAVLfga, h, peh ← -hFIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibrea + hSI equilibrea EST EGAL A 0 ALORSh ← -1SINONh ← 0FIN SIFIN SIRETOURNER aFINSuppressionh=-1pe= 40aatmpNULL0-1000000001E.ANSERMIN R.VERIN R.GRIGNON126

page 126

Page 127 : suppressionAVLA, 20, hFONCTION suppMinAVLa: Arbre; h: pointeur sur entier, pe: ptr sur Element : ptr sur ArbreVARIABLE tmp : ptr sur ArbreDEBUTSI fga EST EGAL A NULL ALORSpe ← elementah ← -1tmp ← aa ← fdaliberertmpRETOURNERaSINONfga ← suppMinAVLfga, h, peh ← -hFIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibrea + hSI equilibrea EST EGAL A 0 ALORSh ← -1SINONh ← 0FIN SIFIN SIRETOURNER aFINSuppressionh=-1pe= 40aaNULL0-100000001tmpE.ANSERMIN R.VERIN R.GRIGNON127

page 127

Page 128 : suppressionAVLA, 20, hFONCTION suppMinAVLa: Arbre; h: pointeur sur entier, pe: ptr sur Element : ptr sur ArbreVARIABLE tmp : ptr sur ArbreDEBUTSI fga EST EGAL A NULL ALORSpe ← elementah ← -1tmp ← aa ← fdaliberertmpRETOURNERaSINONfga ← suppMinAVLfga, h, peh ← -hFIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibrea + hSI equilibrea EST EGAL A 0 ALORSh ← -1SINONh ← 0FIN SIFIN SIRETOURNER aFINSuppressionh=-1pe= 40a0-100000001E.ANSERMIN R.VERIN R.GRIGNON128

page 128

Page 129 : Suppressionh=-1pe= 40a0-100000001suppressionAVLA, 20, hFONCTION suppMinAVLa: Arbre; h: pointeur sur entier, pe: ptr sur Element : ptr sur ArbreVARIABLE tmp : ptr sur ArbreDEBUTSI fga EST EGAL A NULL ALORSpe ← elementah ← -1tmp ← aa ← fdaliberertmpRETOURNERaSINONfga ← suppMinAVLfga, h, peh ← -hFIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibrea + hSI equilibrea EST EGAL A 0 ALORSh ← -1SINONh ← 0FIN SIFIN SIRETOURNER aFINE.ANSERMIN R.VERIN R.GRIGNON129

page 129

Page 130 : Suppressionh=1pe= 40a0-100000001suppressionAVLA, 20, hFONCTION suppMinAVLa: Arbre; h: pointeur sur entier, pe: ptr sur Element : ptr sur ArbreVARIABLE tmp : ptr sur ArbreDEBUTSI fga EST EGAL A NULL ALORSpe ← elementah ← -1tmp ← aa ← fdaliberertmpRETOURNERaSINONfga ← suppMinAVLfga, h, peh ← -hFIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibrea + hSI equilibrea EST EGAL A 0 ALORSh ← -1SINONh ← 0FIN SIFIN SIRETOURNER aFINE.ANSERMIN R.VERIN R.GRIGNON130

page 130

Page 131 : Suppressionh=1pe= 40a0-100000001suppressionAVLA, 20, hFONCTION suppMinAVLa: Arbre; h: pointeur sur entier, pe: ptr sur Element : ptr sur ArbreVARIABLE tmp : ptr sur ArbreDEBUTSI fga EST EGAL A NULL ALORSpe ← elementah ← -1tmp ← aa ← fdaliberertmpRETOURNERaSINONfga ← suppMinAVLfga, h, peh ← -hFIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibrea + hSI equilibrea EST EGAL A 0 ALORSh ← -1SINONh ← 0FIN SIFIN SIRETOURNER aFINE.ANSERMIN R.VERIN R.GRIGNON131

page 131

Page 132 : Suppressionh=1pe= 40a0-100001001suppressionAVLA, 20, hFONCTION suppMinAVLa: Arbre; h: pointeur sur entier, pe: ptr sur Element : ptr sur ArbreVARIABLE tmp : ptr sur ArbreDEBUTSI fga EST EGAL A NULL ALORSpe ← elementah ← -1tmp ← aa ← fdaliberertmpRETOURNERaSINONfga ← suppMinAVLfga, h, peh ← -hFIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibrea + hSI equilibrea EST EGAL A 0 ALORSh ← -1SINONh ← 0FIN SIFIN SIRETOURNER aFINE.ANSERMIN R.VERIN R.GRIGNON132

page 132

Page 133 : suppressionAVLA, 20, hFONCTION suppMinAVLa: Arbre; h: pointeur sur entier, pe: ptr sur Element : ptr sur ArbreVARIABLE tmp : ptr sur ArbreDEBUTSI fga EST EGAL A NULL ALORSpe ← elementah ← -1tmp ← aa ← fdaliberertmpRETOURNERaSINONfga ← suppMinAVLfga, h, peh ← -hFIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibrea + hSI equilibrea EST EGAL A 0 ALORSh ← -1SINONh ← 0FIN SIFIN SIRETOURNER aFINSuppressionh=1pe= 40a0-100001001E.ANSERMIN R.VERIN R.GRIGNON133

page 133

Page 134 : Suppressionh=0pe= 40a0-100001001suppressionAVLA, 20, hFONCTION suppMinAVLa: Arbre; h: pointeur sur entier, pe: ptr sur Element : ptr sur ArbreVARIABLE tmp : ptr sur ArbreDEBUTSI fga EST EGAL A NULL ALORSpe ← elementah ← -1tmp ← aa ← fdaliberertmpRETOURNERaSINONfga ← suppMinAVLfga, h, peh ← -hFIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibrea + hSI equilibrea EST EGAL A 0 ALORSh ← -1SINONh ← 0FIN SIFIN SIRETOURNER aFINE.ANSERMIN R.VERIN R.GRIGNON134

page 134

Page 135 : Suppressionh=00-100001001suppressionAVLa, 20, hFONCTION suppressionAVLa: ptr sur Arbre, e: element, h: ptr sur Element : pointeur sur ArbreVARIABLEtmp : ptr sur ArbreDEBUTSI a EST EGAL A NULL ALORSh ← 1RETOURNER ASINON SI e SUP. STRICT. A elementa ALORSfda ← suppressionAVLfda, eSINON SI e INF. STRICT. A elementa ALORSfga ← suppressionAVLfga, eh ← -hSINON SI existeFilsDroita ALORS fda ← suppMinAVL fda, h, adresseelementa SINONtmp ← aa ← fga libérertmph ← -1FIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibre a + hSI equilibrea EST EGAL A 0 ALORSh←0SINONh←1FIN SIFIN SIRETOURNER aFINaaE.ANSERMIN R.VERIN R.GRIGNON135SI a EST EGAL A NULL ALORSh ← 0FIN SI

page 135

Page 136 : Suppressionh=00-100001001suppressionAVLa, 20, hFONCTION suppressionAVLa: ptr sur Arbre, e: element, h: ptr sur Element : pointeur sur ArbreVARIABLEtmp : ptr sur ArbreDEBUTSI a EST EGAL A NULL ALORSh ← 1RETOURNER ASINON SI e SUP. STRICT. A elementa ALORSfda ← suppressionAVLfda, eSINON SI e INF. STRICT. A elementa ALORSfga ← suppressionAVLfga, eh ← -hSINON SI existeFilsDroita ALORS fda ← suppMinAVL fda, h, adresseelementa SINONtmp ← aa ← fga libérertmph ← -1FIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibre a + hSI equilibrea EST EGAL A 0 ALORSh←0SINONh←1FIN SIFIN SIRETOURNER aFINaaE.ANSERMIN R.VERIN R.GRIGNON136SI a EST EGAL A NULL ALORSh ← 0FIN SI

page 136

Page 137 : Suppressionh=00-100001001suppressionAVLa, 20, hFONCTION suppressionAVLa: ptr sur Arbre, e: element, h: ptr sur Element : pointeur sur ArbreVARIABLEtmp : ptr sur ArbreDEBUTSI a EST EGAL A NULL ALORSh ← 1RETOURNER ASINON SI e SUP. STRICT. A elementa ALORSfda ← suppressionAVLfda, eSINON SI e INF. STRICT. A elementa ALORSfga ← suppressionAVLfga, eh ← -hSINON SI existeFilsDroita ALORS fda ← suppMinAVL fda, h, adresseelementa SINONtmp ← aa ← fga libérertmph ← -1FIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibre a + hSI equilibrea EST EGAL A 0 ALORSh←0SINONh←1FIN SIFIN SIRETOURNER aFINaaE.ANSERMIN R.VERIN R.GRIGNON137SI a EST EGAL A NULL ALORSh ← 0FIN SI

page 137

Page 138 : Suppressionh=00-100001001suppressionAVLa, 20, hFONCTION suppressionAVLa: ptr sur Arbre, e: element, h: ptr sur Element : pointeur sur ArbreVARIABLEtmp : ptr sur ArbreDEBUTSI a EST EGAL A NULL ALORSh ← 1RETOURNER ASINON SI e SUP. STRICT. A elementa ALORSfda ← suppressionAVLfda, eSINON SI e INF. STRICT. A elementa ALORSfga ← suppressionAVLfga, eh ← -hSINON SI existeFilsDroita ALORS fda ← suppMinAVL fda, h, adresseelementa SINONtmp ← aa ← fga libérertmph ← -1FIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibre a + hSI equilibrea EST EGAL A 0 ALORSh←0SINONh←1FIN SIFIN SIRETOURNER aFINaE.ANSERMIN R.VERIN R.GRIGNON138SI a EST EGAL A NULL ALORSh ← 0FIN SI

page 138

Page 139 : Suppressionh=00-100001001suppressionAVLa, 20, hFONCTION suppressionAVLa: ptr sur Arbre, e: element, h: ptr sur Element : pointeur sur ArbreVARIABLEtmp : ptr sur ArbreDEBUTSI a EST EGAL A NULL ALORSh ← 1RETOURNER ASINON SI e SUP. STRICT. A elementa ALORSfda ← suppressionAVLfda, eSINON SI e INF. STRICT. A elementa ALORSfga ← suppressionAVLfga, eh ← -hSINON SI existeFilsDroita ALORS fda ← suppMinAVL fda, h, adresseelementa SINONtmp ← aa ← fga libérertmph ← -1FIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibre a + hSI equilibrea EST EGAL A 0 ALORSh←0SINONh←1FIN SIFIN SIRETOURNER aFINaE.ANSERMIN R.VERIN R.GRIGNON139SI a EST EGAL A NULL ALORSh ← 0FIN SI

page 139

Page 140 : Suppressionh=00-100001001suppressionAVLa, 20, hFONCTION suppressionAVLa: ptr sur Arbre, e: element, h: ptr sur Element : pointeur sur ArbreVARIABLEtmp : ptr sur ArbreDEBUTSI a EST EGAL A NULL ALORSh ← 1RETOURNER ASINON SI e SUP. STRICT. A elementa ALORSfda ← suppressionAVLfda, eSINON SI e INF. STRICT. A elementa ALORSfga ← suppressionAVLfga, eh ← -hSINON SI existeFilsDroita ALORS fda ← suppMinAVL fda, h, adresseelementa SINONtmp ← aa ← fga libérertmph ← -1FIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibre a + hSI equilibrea EST EGAL A 0 ALORSh←0SINONh←1FIN SIFIN SIRETOURNER aFINaE.ANSERMIN R.VERIN R.GRIGNON140SI a EST EGAL A NULL ALORSh ← 0FIN SI

page 140

Page 141 : FONCTION suppressionAVLa: ptr sur Arbre, e: element, h: ptr sur Element : pointeur sur ArbreVARIABLEtmp : ptr sur ArbreDEBUTSI a EST EGAL A NULL ALORSh ← 1RETOURNER ASINON SI e SUP. STRICT. A elementa ALORSfda ← suppressionAVLfda, eSINON SI e INF. STRICT. A elementa ALORSfga ← suppressionAVLfga, eh ← -hSINON SI existeFilsDroita ALORS fda ← suppMinAVL fda, h, adresseelementa SINONtmp ← aa ← fga libérertmph ← -1FIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibre a + hSI equilibrea EST EGAL A 0 ALORSh←0SINONh←1FIN SIFIN SIRETOURNER aFINSuppression0-100001001suppressionAVLa, 20, hE.ANSERMIN R.VERIN R.GRIGNON141SI a EST EGAL A NULL ALORSh ← 0FIN SI

page 141

Page 142 : FONCTION suppressionAVLa: ptr sur Arbre, e: element, h: ptr sur Element : pointeur sur ArbreVARIABLEtmp : ptr sur ArbreDEBUTSI a EST EGAL A NULL ALORSh ← 1RETOURNER ASINON SI e SUP. STRICT. A elementa ALORSfda ← suppressionAVLfda, eSINON SI e INF. STRICT. A elementa ALORSfga ← suppressionAVLfga, eh ← -hSINON SI existeFilsDroita ALORS fda ← suppMinAVL fda, h, adresseelementa SINONtmp ← aa ← fga libérertmph ← -1FIN SISI h DIFFERENT DE 0 ALORSequilibrea ← equilibre a + hSI equilibrea EST EGAL A 0 ALORSh←0SINONh←1FIN SIFIN SIRETOURNER aFINSuppression0-100001001suppressionAVLa, 20, ha ← equilibrageAVLaE.ANSERMIN R.VERIN R.GRIGNON142SI a EST EGAL A NULL ALORSh ← 0FIN SI

page 142

Page 143 : IV. Equilibrage d’un AVLE.ANSERMIN R.VERIN R.GRIGNON143

page 143

Page 144 : Rotation simple•L’opération de rééquilibrage dépend de la structure de l’arbre après une opération d’insertion/suppression.•Cas 1 : L’ élément ajouté est tout à droite de l’arbre. 105281512181000011200E.ANSERMIN R.VERIN R.GRIGNON144

page 144

Page 145 : Rotation simple •Cas 1 : L’ élément ajouté est tout à droite de l’arbre. 105281512181000011200 +1210La modification de l ’équilibre des nœuds se fait en remontant les parentsE.ANSERMIN R.VERIN R.GRIGNON145

page 145

Page 146 : 105281512181+1000011201210La modification de l ’équilibre des nœuds se fait en remontant les parentsRotation simple•Cas 1 : L’ élément ajouté est tout à droite de l’arbre. E.ANSERMIN R.VERIN R.GRIGNON146

page 146

Page 147 : Rotation simple 105281512182000011201210Il faut rééquilibrer•Cas 1 : L’ élément ajouté est tout à droite de l’arbre. E.ANSERMIN R.VERIN R.GRIGNON147

page 147

Page 148 : Rotation simple105281512182000011201210On modifie ce sous-arbre•Cas 1 : L’ élément ajouté est tout à droite de l’arbre. E.ANSERMIN R.VERIN R.GRIGNON148

page 148

Page 149 : Rotation simple105281512182000011201210105281512200000011180210•Cas 1 : L’ élément ajouté est tout à droite de l’arbre rotation simple à gauche E.ANSERMIN R.VERIN R.GRIGNON149

page 149

Page 150 : Rotation simplea2p1c0pivot•Cas 1 : L’ élément ajouté est tout à droite de l’arbre rotation simple à gauche•L’element intermédiaire doit devenir la racine du sous-arbre équilibré ; l’arbre doittourner autour de cet élément : c’est le pivot.E.ANSERMIN R.VERIN R.GRIGNON150

page 150

Page 151 : Rotation simplea2p1c0pivot•Cas 1 : L’ élément ajouté est tout à droite de l’arbre rotation simple à gauche•L’element intermédiaire doit devenir la racine du sous-arbre équilibré ; l’arbre doittourner autour de cet élément : c’est le pivot.a2p1c0On tourne le sous arbre vers la gaucheautour du pivot.E.ANSERMIN R.VERIN R.GRIGNON151

page 151

Page 152 : Rotation simplea2p1c0pivot•Cas 1 : L’ élément ajouté est tout à droite de l’arbre rotation simple à gauche•L’element intermédiaire doit devenir la racine du sous-arbre équilibré ; l’arbre doittourner autour de cet élément : c’est le pivot.a2p1c0On tourne le sous arbre vers la gaucheautour du pivot.pacArbre équilibré000E.ANSERMIN R.VERIN R.GRIGNON152

page 152

Page 153 : Rotation simple•Cas 1 : L’ élément ajouté est tout à droite de l’arbre rotation simple à gauche•Schema general de la rotation gauche : a12pE.ANSERMIN R.VERIN R.GRIGNON153

page 153

Page 154 : Rotation simple•Cas 1 : L’ élément ajouté est tout à droite de l’arbre rotation simple à gauche•Schema general de la rotation gauche : Exemple :a12papE.ANSERMIN R.VERIN R.GRIGNON154

page 154

Page 155 : Rotation simple•Cas 1 : L’ élément ajouté est tout à droite de l’arbre rotation simple à gauche•Schema general de la rotation gauche : paa12p00E.ANSERMIN R.VERIN R.GRIGNON155

page 155

Page 156 : Rotation simple•Cas 1 : L’ élément ajouté est tout à droite de l’arbre rotation simple à gauche•Schema general de la rotation gauche : paa12p00a02pE.ANSERMIN R.VERIN R.GRIGNON156

page 156

Page 157 : Rotation simple•Cas 1 : L’ élément ajouté est tout à droite de l’arbre rotation simple à gauche•Schema general de la rotation gauche : paa12p00a02ppa-11E.ANSERMIN R.VERIN R.GRIGNON157

page 157

Page 158 : Rotation simple•Cas 1 : L’ élément ajouté est tout à droite de l’arbre rotation simple à gauche•Algorithme: paa12p00FONCTION rotationGauchea: ptr sur Arbre : ptr sur ArbreVARIABLE pivot : ptr sur Arbreeqa, eqp: entierDEBUTpivot ← ???…RETOURNER aFINE.ANSERMIN R.VERIN R.GRIGNON158

page 158

Page 159 : Rotation simple•Cas 1 : L’ élément ajouté est tout à droite de l’arbre rotation simple à gauche•Algorithme: FONCTION rotationGauchea: ptr sur Arbre : ptr sur ArbreVARIABLE pivot : ptr sur Arbreeqa, eqp: entierDEBUTpivot ← fdafda ← fgpivotfgpivot ← a…a ← pivotRETOURNER aFINpaa12p00E.ANSERMIN R.VERIN R.GRIGNON159

page 159

Page 160 : Rotation simple•Cas 1 : L’ élément ajouté est tout à droite de l’arbre rotation simple à gauche•Algorithme: FONCTION rotationGauchea: ptr sur Arbre : ptr sur ArbreVARIABLE pivot : ptr sur Arbreeqa, eqp: entierDEBUTpivot ← fdafda ← fgpivotfgpivot ← aeqa← equilibreaeqp← equilibrepivotequilibrea ← eqa - maxeqp, 0 - 1equilibrepivot ← min eqa-2, eqa+eqp-2, eqp-1 a ← pivotRETOURNER aFINpaa12p00E.ANSERMIN R.VERIN R.GRIGNON160

page 160

Page 161 : Rotation simple •Cas 2 : L’ élément ajouté est tout à gauche de l’arbre. 10548151218000-100030E.ANSERMIN R.VERIN R.GRIGNON161

page 161

Page 162 : Rotation simple •Cas 2 : L’ élément ajouté est tout à gauche de l’arbre. 10548151218000-200032-10E.ANSERMIN R.VERIN R.GRIGNON162

page 162

Page 163 : Rotation simple •Cas 2 : L’ élément ajouté est tout à gauche de l’arbre. 10548151218000-200032-10E.ANSERMIN R.VERIN R.GRIGNON163

page 163

Page 164 : Rotation simple •Cas 2 : L’ élément ajouté est tout à gauche de l’arbre : rotation simple à droite 10548151218000-200032-10105381512180000-10-1240pivotE.ANSERMIN R.VERIN R.GRIGNON164

page 164

Page 165 : Rotation simple •Cas 2 : L’ élément ajouté est tout à gauche de l’arbre : rotation simple à droite•Schema general rotation droite : a-1-2pE.ANSERMIN R.VERIN R.GRIGNON165

page 165

Page 166 : Rotation simple •Cas 2 : L’ élément ajouté est tout à gauche de l’arbre : rotation simple à droite•Schema general rotation droite : a-1-2ppa00E.ANSERMIN R.VERIN R.GRIGNON166

page 166

Page 167 : Rotation simple •Cas 2 : L’ élément ajouté est tout à gauche de l’arbre : rotation simple à droite•Schema general rotation droite : a-1-2ppa00a0-2pE.ANSERMIN R.VERIN R.GRIGNON167

page 167

Page 168 : Rotation simple •Cas 2 : L’ élément ajouté est tout à gauche de l’arbre : rotation simple à droite•Schema general rotation droite : a-1-2ppa00a0-2ppa1-1E.ANSERMIN R.VERIN R.GRIGNON168

page 168

Page 169 : Rotation simple a-1-2ppa00•Cas 2 : L’ élément ajouté est tout à gauche de l’arbre : rotation simple à droite•Algorithme:FONCTION rotationDroitea: ptr sur Arbre : ptr sur ArbreVARIABLE pivot : ptr sur Arbreeqa, eqp: entierDEBUTpivot ← ???…RETOURNER aFINE.ANSERMIN R.VERIN R.GRIGNON169

page 169

Page 170 : Rotation simple a-1-2ppa00•Cas 2 : L’ élément ajouté est tout à gauche de l’arbre : rotation simple à droite•Algorithme:FONCTION rotationDroitea: ptr sur Arbre : ptr sur ArbreVARIABLE pivot : ptr sur Arbreeqa, eqp: entierDEBUTpivot ← fgafga ← fdpivotfdpivot ← a…a ← pivotRETOURNER aFINE.ANSERMIN R.VERIN R.GRIGNON170

page 170

Page 171 : Rotation simple •Cas 2 : L’ élément ajouté est tout à gauche de l’arbre : rotation simple à droite•Algorithme:a-1-2ppa00FONCTION rotationDroitea: ptr sur Arbre : ptr sur ArbreVARIABLE pivot : ptr sur Arbreeqa, eqp: entierDEBUTpivot ← fgafga ← fdpivotfdpivot ← aeqa← equilibreaeqp← equilibrepivotequilibrea ← eqa - mineqp, 0 + 1equilibrepivot ← max eqa+2, eqa+eqp+2, eqp+1 a ← pivotRETOURNER aFINE.ANSERMIN R.VERIN R.GRIGNON171

page 171

Page 172 : Rotation simple •Autre exemple de rotation simple avec la suppression :10532015261000-1130170129010520152610001301702290E.ANSERMIN R.VERIN R.GRIGNON172

page 172

Page 173 : Rotation simple •Autre exemple de rotation simple avec la suppression :1052015261000130170229020-110501513170261290001pivotRotation gauchepivot ← fdafda ← fgpivotfgpivot ← a…a ← pivotE.ANSERMIN R.VERIN R.GRIGNON173

page 173

Page 174 : Rotation double•Cas 3 : élément supprimé dans le sous-arbre gauche suivant : 1053201526000-1-11301701E.ANSERMIN R.VERIN R.GRIGNON174

page 174

Page 175 : Rotation double•Cas 3 : élément supprimé dans le sous-arbre gauche suivant : 10520152600-101301702Rotation gaucheE.ANSERMIN R.VERIN R.GRIGNON175

page 175

Page 176 : Rotation double•Cas 3 : élément supprimé dans le sous-arbre gauche suivant : 10520152600013017020105152601301700pivot ← fdafda ← fgpivotfgpivot ← a…a ← pivotRotation gauche-1+2+1-2E.ANSERMIN R.VERIN R.GRIGNON176

page 176

Page 177 : Rotation double•Cas 3 : élément supprimé dans le sous-arbre gauche suivant : 10520152600-10130170+2La rotation à gauche ne fonctionne pas !2010+1-25152601301700pivot ← fdafda ← fgpivotfgpivot ← a…a ← pivotRotation gaucheE.ANSERMIN R.VERIN R.GRIGNON177

page 177

Page 178 : Rotation double•Cas 3 : élément supprimé dans le sous-arbre gauche suivant : 10520152600-10130170215105013201702600000E.ANSERMIN R.VERIN R.GRIGNON178

page 178

Page 179 : Rotation double•Cas 3 : élément supprimé dans le sous-arbre gauche suivant : double rotation gauche 10520152600-10130170215105013201702600000E.ANSERMIN R.VERIN R.GRIGNON179

page 179

Page 180 : Rotation double•Cas 3 : élément supprimé dans le sous-arbre gauche suivant : double rotation gauche 10520152600-1013017021510501320170260000010501520260170130Rotation droitepivot0+1+2E.ANSERMIN R.VERIN R.GRIGNON180

page 180

Page 181 : Rotation double•Cas 3 : élément supprimé dans le sous-arbre gauche suivant : double rotation gauche10520152600-1013017021510501320170260000010501520260170130Rotation droitepivotRotation gauche0+1+2E.ANSERMIN R.VERIN R.GRIGNON181

page 181

Page 182 : Rotation double•Cas 3 : élément supprimé dans le sous-arbre gauche suivant : double rotation gaucheA.K.A. : rotation droite gauche 10520152600-1013017021510501320170260000010501520260170130Rotation droiteRotation gauchepivot0+1+2E.ANSERMIN R.VERIN R.GRIGNON182

page 182

Page 183 : Rotation double•Cas 3 : hauteur trop importante dans la partie gauche du sous-arbre droit: double rotation gauche A12BP0E.ANSERMIN R.VERIN R.GRIGNON183

page 183

Page 184 : Rotation double•Cas 3 : hauteur trop importante dans la partie gauche du sous-arbre droit: double rotation gauche A-12BPA+12BProtationDroitefdA00E.ANSERMIN R.VERIN R.GRIGNON184

page 184

Page 185 : •Cas 3 : hauteur trop importante dans la partie gauche du sous-arbre droit: double rotation gauche Rotation doubleA-12BPA+12BProtationDroitefdA00ABP000rotationGaucheAE.ANSERMIN R.VERIN R.GRIGNON185

page 185

Page 186 : •Cas 3 : hauteur trop importante dans la partie gauche du sous-arbre droit: double rotation gauche Rotation doubleA-12BP-1A-12BP1ABP001ABP-100Double rotation gaucheDouble rotation gaucheE.ANSERMIN R.VERIN R.GRIGNON186

page 186

Page 187 : •Cas 3 : hauteur trop importante dans la partie gauche du sous-arbre droit: double rotation gauche Rotation double•Algorithme :FONCTION doubleRotationGauchea: ptr sur Arbre : ptr sur ArbreDEBUT fda ← rotationDroitefdaRETOURNER rotationGaucheaFINE.ANSERMIN R.VERIN R.GRIGNON187

page 187

Page 188 : •Cas 4 : hauteur trop importante dans la partie droite du sous-arbre gauche: double rotation droiteRotation doubleABP-210E.ANSERMIN R.VERIN R.GRIGNON188

page 188

Page 189 : •Cas 4 : hauteur trop importante dans la partie droite du sous-arbre gauche: double rotation droiteRotation doubleABPABP-210-10rotationGauchefgA-2E.ANSERMIN R.VERIN R.GRIGNON189

page 189

Page 190 : •Cas 4 : hauteur trop importante dans la partie droite du sous-arbre gauche: double rotation droiteRotation doubleABPAABPPB-210-10000rotationDroiteArotationGauchefgA-2E.ANSERMIN R.VERIN R.GRIGNON190

page 190

Page 191 : •Cas 4 : hauteur trop importante dans la partie droite du sous-arbre gauche: double rotation droiteRotation doubleABPAABPPB-210-10000rotationDroiteArotationGauchefgA-2A.K.A. : rotation gauche droiteE.ANSERMIN R.VERIN R.GRIGNON191

page 191

Page 192 : •Cas 4 : hauteur trop importante dans la partie droite du sous-arbre gauche: double rotation droiteRotation doubleABP-21-1APB001ABP-211APB-100Double rotation droiteE.ANSERMIN R.VERIN R.GRIGNON192

page 192

Page 193 : •Cas 4 : hauteur trop importante dans la partie droite du sous-arbre gauche: double rotation droiteRotation double•Algorithme :FONCTION doubleRotationDroitea: ptr sur Arbre : ptr sur ArbreDEBUT fga ← rotationGauchefgaRETOURNER rotationDroiteaFINE.ANSERMIN R.VERIN R.GRIGNON193

page 193

Page 194 : Choix de la rotation• La rotation à effectuer dépend de la structure de l’arbre de quel côté se situe le déséquilibre.• Pour connaître la rotation à effectuer, il suffit de regarder l’équilibre de la racinenœud dont l’équilibre vaut +2 ou -2 et de ses fils :• SI equilibreracine EST EGAL A -2 • →rotation droite • SI equilibreracine EST EGAL A +2 → rotation gauche• →rotation gaucheE.ANSERMIN R.VERIN R.GRIGNON194

page 194

Page 195 : • La rotation à effectuer dépend de la structure de l’arbre de quel côté se situe le déséquilibre.• Pour connaître la rotation à effectuer, il suffit de regarder l’équilibre de la racinenœud dont l’équilibre vaut +2 ou -2 et de ses fils :• SI equilibreracine EST EGAL A -2 • →rotation droite • SI equilibrefgracine EST INF. OU EGAL A 0• →rotation simple• SINON• →rotation double• SI equilibreracine EST EGAL A +2 → rotation gauche• →rotation gauche• SI equilibrefdracine EST SUP. OU EGAL A 0• →rotation simple• SINON• →rotation doubleChoix de la rotationE.ANSERMIN R.VERIN R.GRIGNON195

page 195

Page 196 : Choix de la rotation•Algorithme :FONCTION equilibrerAVLa: ptr sur Arbre : ptr sur ArbreDEBUTSI equilibrea EST SUP. OU EGAL A 2 ALORS// sous-arbre droit plus profondSI equilibrefdA SUP. OU EGAL A 0 ALORSRETOURNER rotationGaucheaSINONRETOURNER doubleRotationGaucheaFIN SISINON SI equilibrea EST INF. OU EGAL A -2 ALORS // sous-arbre gauche plus profondSI equilibrefga INF. OU EGAL A 0 ALORSRETOURNER rotationDroiteaSINONRETOURNER doubleRotationDroiteaFIN SI FIN SIRETOURNER aFINE.ANSERMIN R.VERIN R.GRIGNON196

page 196

Page 197 : Complexité de l’AVL• Les opérations de rotations sont à compléxité constante O1• L’opération d’insertion ajoute une hauteur de 1 sur la branche où est inséré l’élément : unerotation suffit pour rééquilibrer l’arbre.• L’opération de suppression peut exécuter une rotation sur chaque ancêtre du nœud supprimé. Mais celles-ci étant en temps constant, le nombre de rotations dépend de la hauteur de l’arbre.• Donc, pour un arbre AVL de n nœuds, le temps total d’ajout ou suppression est : 𝑶𝐥𝐨𝐠𝟐𝒏E.ANSERMIN R.VERIN R.GRIGNON197

page 197

Page 198 : Résumé • Le facteur d’équilibre d’un arbre représente la différence de hauteur entre le sous-arbre gauche et droit : il permet de quantifier l’équilibre de l’arbre.• Les AVL sont des arbres auto-équilibrés garantissant une structure de l’arbre permettant d’optimiser les opérations de recherche, d’insertion et de suppression.• L’ AVL exploite des opérations de rotation autour d’un nœud pivot pour rééquilibrer un arbre.• Il existe d’autre types d’arbres auto-équilibrés comme les arbres rouge-noirs!E.ANSERMIN R.VERIN R.GRIGNON198

page 198

Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198

Le contenu de cet article est la propriété exclusive de son auteur.