Vous êtes sur la page 1sur 3

Université de Blida 1 ALGORITHMIQUES ET Deuxième année Ingénieur

Département d’Informatique COMPLEXITE Année universitaire 2023/2024

TRAVAIL DIRIGE N° 5 – RECURSIVITE ET ARBRES

EXERCICE 1 (ARBRES BINAIRES)

Q1. Écrire une fonction qui recherche un nombre n dans un arbre binaire d’entiers. La fonction doit renvoyer
vrai si n est présent, faux sinon.
Q2. Écrire une fonction qui calcule la somme des valeurs des nœuds dans un arbre binaire.
Q3. Écrire une fonction qui retourne le nombre des nœuds dans un arbre binaire.
Q4. Écrire une fonction qui retourne le nombre des feuilles dans un arbre binaire.
Q5. Écrire une fonction calculant le maximum des valeurs des nœuds d’un arbre binaire d’entiers.
Q6. Écrire une fonction Nbr_Noeud(A:Arbre, Niv: Entier): Entier qui renvoie le nombres des nœuds d’un
niveau donné Niv.
Q7. Écrire une fonction compare qui compare deux arbres binaires (la fonction renvoie vrai si et seulement
si les deux arbres binaires ont la même structure d'arbre et qu'ils portent les mêmes valeurs aux nœuds
se correspondant).
Q8. Ecrire une fonction qui vérifie si deux arbres binaires sont l'un miroir de l'autre.
Q9. Ecrire une fonction qui calcule la profondeur d'un arbre binaire.
Q10. Ecrire une fonction qui vérifie si un arbre binaire est complet.

EXERCICE 2 (ARBRES BINAIRES DE RECHERCHE)

Q1. Soit R un Arbre Binaire de Recherche (ABR) contenant des entiers. Son parcours en largeur de gauche
à droite donne le résultat suivant : 35, 20, 55, 5, 30, 45, 60, 25, 83.
 Donner la représentation graphique de cet arbre R.
 Donner le résultat du parcours préordre et postordre de l’arbre R.
 Quel est le résultat du parcours en largueur après l’insertion de 38 et suppression de 35 ?
Q2. Écrire une fonction qui renvoie vrai si et seulement si l'arbre binaire passé en paramètre est un arbre
binaire de recherche.
Q3. Écrire une fonction Max(R :Arbre) : Entier qui calcule le maximum des valeurs des nœuds d’un ABR
d’entiers. Supposant que h désigne la hauteur d’un ABR, donner la borne supérieure asymptotique
(complexité) de la fonction Max.
Q4. Ecrire une fonction KiemeMax(R :Arbre, Var k :Entier) : Entier qui renvoie le kième plus grand élément
d’un ABR. Par exemple, KiemeMax(R, k) avec k initialisé à 3 retourne 35.

1/3
EXERCICE 3: On convient de représenter une image en noire et blanc à l’aide un arbre m-aire de degré 4 comme
suit :

 Une image toute noire est représentée par une feuille d’une valeur ‘N’.
 Une image toute blanche est représentée par une feuille d’une valeur ‘B’.
 Une image contenant les deux couleurs est représentée par un sous arbre dont la racine est de valeur ‘C’
et chaque fils représente un quart de l’image.

Exemple : Soit l’image ci-dessous ; l’arbre représentant cette image est le suivant :

1. Donner les déclarations des structures de données nécessaires à l’implémentation de ce modèle.


2. Soit la procédure suivante :

Procedure Traiter (Racine : Arbre) ;


Var P : Arbre;
Debut
Si Racine <> Nil et Info(Racine) = ’C’ alors
P ← Fils1 ( Racine ) ;
aff_Fils1 ( Racine , Fils3 ( Racine ) ) ;
aff_Fils3 ( Racine , Fils4 (Racine ) ) ;
aff_Fils4 ( Racine, Fils2 ( Racine ) ) ;
aff_Fils2 (Racine,P) ;
Traiter ( Fils1 (Racine) ); Traiter ( Fils2 (Racine) );
Traiter ( Fils3 (Racine) ); Traiter ( Fils4 (Racine) );
Fsi;
Fin.

Donner l’image correspondant à l’arbre précédent après l’appel : Traiter (Image) ;


3. Écrire la procédure permettant de tourner verticalement une image représentée par un arbre.

2/3
EXERCICE 4

Q1. Ou pourrait se trouver le plus petit élément d’un tas max, en supposant que tous les éléments sont distincts?
Q2. Un tableau trié dans un ordre croissant forme-t-il un tas min ?
Q3. Le tableau [23, 17, 14, 6, 13, 10, 1, 5, 7, 12] forme-t-il un tas max ?

EXERCICE 5

Q1. Quel est l’effet d’un appel ENTASSER-MAX(A, i) quand l’élément A.T[i] est plus grand que ses enfants ?
Q2. Illustrer l’action de ENTASSER-MAX(A, 2) sur le tas A = [27, 17, 3, 16, 13, 10, 1, 5, 7, 12, 4, 8, 9, 0].
Q3. Montrer en donnant un exemple que le temps d’exécution dans le pire des cas de ENTASSER-MAX sur un
tas de taille N est O(log N). Conseil : Pour un tas à N nœuds, donner des valeurs de nœuds qui provoquent
l’appel récursif d’ENTASSER-MAX en chaque nœud d’un chemin reliant la racine à une feuille.
Q4. En s’inspirant de la procédure ENTASSER-MAX, écrire du pseudo code pour la procédure ENTASSER-MIN(A,
i) qui fait la même chose mais pour un tas min.
Q5. Le code d’ENTASSER-MAX est assez efficace, sauf peut-être pour l’appel récursif qui risque d’entraîner
certains compilateurs à générer du code inefficace. Écrire une procédure ENTASSER-MAX efficace qui utilise
une structure de contrôle itérative (boucle) au lieu d’un appel récursif.

EXERCICE 6

Q1. Quelle est la complexité du tri par tas sur un tableau A de longueur n déjà trié en ordre décroissant?
Q2. Illustrer l’action de TRI-PAR-TAS sur le tableau A = [5,13, 2, 25, 7, 17, 20, 8, 4].

3/3

Vous aimerez peut-être aussi