Cours7 Arbres
Cours7 Arbres
Cours7 Arbres
Arbres binaires
Représentation des arbres
Fonctions primitives sur les arbres
Parcours d’arbres
Arbres ordonnés
À QUOI SERVENT LES ARBRES ?
6 Racine
4 9
1 8
Feuilles
¢ Primitives de test
vide? : retourne vrai si un arbre donné est vide
arbre=? : retourne vrai si deux arbres donnés sont
égaux
¢ Primitives de construction
vide : retourne un arbre vide
cons-binaire : crée un arbre avec une valeur donnée et
deux arbres donnés qui seront ses deux uniques fils
Soit l’arbre a :
6
(valeur a) → 6
(valeur (fils-g a)) → 4
4 9
(valeur (fils-d (fils-g a))) → 8
(vide? a) → #f
(vide? (fils-d a)) → #f
1 8 (vide? (fils-g (fils-d a))) → #t
4 9
1 8
10
11
12
13
14
¢ b → (4 (1 () ()) (8 () ()))
16
17
6 6
4 9 4 9
1 8 1 8
Parcours en largeur Parcours en profondeur
18
19
¢ Parcours infixe :
¢ Fils-g Valeur Fils-d
6
¢ → 1 4 8 6 9
¢ Parcours préfixe :
4 9 ¢ Valeur Fils-g Fils-d
¢ → 6 4 1 8 9
¢ Parcours postfixe :
1 8
¢ Fils-g Fils-d Valeur
¢ → 1 8 4 9 6
20
la valeur de la racine de A
21
22
13 9
4 9
0 0
1 8
1 8
0 0 0 0
24
25
28
13 9
4 9
1 8
1 8
26
4 9
1
27
28
0
On fait des calculs
6 inutiles
0 9
0 9
1 8 1 1
Il faut s’arrêter dès
1 8 qu’on rencontre la
1 1 1 1 valeur 0
30
31
6
0 9
0 9
1 1
1 8
32
33
34
6 28
4 9 13 9
1 8 1 8
35
36
37
6 6
4 9 4 9
1 8 1
39
6 6
4 9 4+6 = 10 9+6 = 15
1 8 1+10 = 11 8+10 = 18
41
42
…
N. Guin - M. Lefevre - F. Zara Licence Lyon1 - UE LIF3
ARBRES BINAIRES DE RECHERCHE
(OU ORDONNÉS)
¢ Les valeurs des nœuds doivent pouvoir être ordonnées
¢ En chaque nœud de l’arbre, la valeur du nœud est :
supérieure à toutes celles de son fils gauche
inférieure à toutes celles de son fils droit
<7 >7
6 6
4 9 4 9
1 5 1 8
47
Appels récursifs :
¢ Chercher V dans fils-gauche(A)
¢ Puis si on n’a toujours pas trouvé V, chercher V dans fils-droit(A)
48
6 Recherche fructueuse :
Chercher 5
4 9
Cas le pire
Recherche infructueuse :
1 8 Chercher 7
3 5 Complexité au pire :
nombre de nœuds de
l’arbre 49
50
Appels récursifs :
¢ Si V>valeur(A) Alors chercher V dans fils-droit(A)
¢ Si V<valeur(A) Alors chercher V dans fils-gauche(A)
51
6 Recherche fructueuse :
Chercher 5
2 9
Recherche infructueuse :
Chercher 7
1 4
Complexité au pire :
3 5 hauteur de l’arbre
52
7 6 6
4 9 4 9
1 5 1 5 7
53
54
6 6
4 9 4 9
1 5 1
55
6 6
4 9 3 9
2 5 2 5
1 3 1
56
4 9 3 9
2 5 2 5
1 3 1
2,5
2,2 2,8 57