Vous êtes sur la page 1sur 1

Série n° 4 : Les arbres

Exercice 1 : Gestion d’étudiants.

Un étudiant est identifié par son matricule (entier), son nom, et son prénom.

(1) Écrivez les structures de données (SDDs) nécessaires pour stocker des étudiants dans un
arbre de recherche binaire.
(2) Implémentez les modules d’insertion, de recherche (par matricule), de modification, et de
suppression d’étudiants.
(3) Implémentez les trois méthodes de parcours vues dans le cours pour afficher les étudiants
inscrits.
Exercice 2 : Évaluation d’expressions arithmétiques

Soit une chaîne de caractères, d’une longueur N, contenant des expressions arithmétiques du genre:

((100 + 2) * (3/12)) + (5 – 2)

(1) Écrivez les SDDs nécessaires pour représenter ces expressions sous forme d’arbres binaires.
(2) Écrivez un algorithme pour créer un arbre binaire à partir d’une expression arithmétique.
(3) Écrivez une fonction evaluate(expression) qui renvoie la valeur numérique d’une expression
arithmétique.
Exercice 3: Transformation d’arbres

Soit un arbre m-aire M. Écrivez un algorithme qui transforme M en un arbre binaire.

Exercice 4 : Parcours d’arbres binaires

Soit un arbre binaire dont la racine est R.

(1) Écrivez la procédure de parcours in-ordre de cet arbre.


(2) Écrivez une version itérative de ce parcours (en utilisant une pile)
(3) Supposons maintenant que chaque nœud dans un arbre binaire pointe vers son père, écrivez
un algorithme itératif de parcours pré-ordre sans pile.
(4) Un arbre est dit enfilé (threaded) si l’on faisait pointer chaque fils droit qui est NULL vers le
successeur in-ordre (s’il existe) de son père, et chaque fils gauche qui est NULL vers son
prédécesseur in-ordre. Écrivez un algorithme itératif de parcours in-ordre de ces arbres
enfilés sans utiliser une pile.

Exercice 5 : Écrivez une procédure récursive deleteTree(T) qui supprime (ou détruit) un arbre
binaire dont la racine est R. Donnez les version récursives et itératives de cette procédure.

Vous aimerez peut-être aussi