Académique Documents
Professionnel Documents
Culture Documents
#include <stdio.h>
#include <stdlib.h>
nouveauNoeud->d = NULL;
return nouveauNoeud;
}
if (racine == NULL)
return;
printf("%d | ",racine->val);
prefixe(racine->g);
prefixe(racine->d);
return;
}
void infixe(Arbre racine){
if (racine == NULL)
return;
infixe(racine->g);
printf("%d | ",racine->val);
infixe(racine->d);
return;
}
void postfixe(Arbre racine){
if (racine == NULL)
return;
postfixe(racine->g);
postfixe(racine->d);
printf("%d | ",racine->val);
return;
}
int main() {
Arbre monArbre = NULL;
insererNoeud(&monArbre, 70);
insererNoeud(&monArbre, 60);
insererNoeud(&monArbre, 45);
insererNoeud(&monArbre, 64);
insererNoeud(&monArbre, 30);
insererNoeuditer(&monArbre, 52);
insererNoeuditer(&monArbre, 62);
insererNoeuditer(&monArbre, 77);
insererNoeuditer(&monArbre, 75);
insererNoeuditer(&monArbre, 81);
prefixe(monArbre);
printf("\n");
printf("\n");
printf("Arbre binaire infixe :\n\n");
infixe(monArbre);
printf("\n");
printf("\n");
postfixe(monArbre);
printf("\n");
afficherArbreNiveau(monArbre);
printf("\n");
return 0;
}
6
supprimerNoeud(monArbre,52);
printf("Arbre apres suppresstion :\n\n");
afficherArbreStruct(monArbre, 0);
printf("\n");
return 0;
}
7
Arbre AVL
Facteur d'équilibre (FE) = hauteur(SousArbreGauche)−hauteur(SousArbreDroit)
1-3= -3
2-2 = 0 3-1=2
é=1 0 1-2= -1
0-2=2 0
1-0 = 1 1-0 = 1
0 0-1= -1
1-0=1
0 0 0
0
Cas 1
Initiale Ajout (10) Apres rotation
é=1
é=1
+1
é=1 é=1
+2
30 30
0
é 20
é
0 = é= +1 = é =
é
20 1
20
Rd(t) 0 =é = 0
é 1 é 11
10 1
1
30
=é = 0 é=1 é é
=é = é= é=
11 10 = =
é 11 1 1
1 1
Cas 2 =é =
Initiale Ajout (20) Apres rotation
1
é=1 +1
é =30
1 +2
é=1 é=1 0
30 30 20
é é
0 é
= é= -1 = é = Rgd(t) é=
10 1 20 =0é = 0
é 1 10 10 1 30
é 11 0 é=1
1
1
=é = é é
=é = 20 10 é = é= = é ==
11 11 é 1 1 1 1 1
=é = é=
1 1
8
Cas 3