Table des matières

Arbre Binaire de Recherche (ABR)

Un arbre binaire est ici défini comme suit :

Un arbre binaire de recherche respecte de plus la contrainte suivante:

Nous implémentons dans ce TP un arbre binaire de recherche.

Ouvrez l'éditeur Pycharm et créez un nouveau projet.

Dans ce projet, créez un fichier python arbreBinaireRecherche.py et un fichier de test testeABR.py

1. Pour commencer

L'accès aux valeurs de l'arbre se fait à partir la racine. Pour commencer, nous créons 3 étiquettes:

INDEX = 0
GAUCHE = 1
DROIT = 2

2. Insérer des valeurs

L'insertion de valeurs se fait généralement de manière récursive, comme suit:

algo : insérer_rec
données :
  * racine
  * val
début:
    si racine est nul:
        retourner feuille(val)
    sinon:
        si val < racine[INDEX]:
            racine[GAUCHE] <-- insérer_rec(racine[GAUCHE], val)
        sinon:
            racine[DROIT] <-- insérer_rec(racine[DROIT], val)
        retourner racine

3. Affichage en ordre

Écrivez et testez une fonction qui affiche les valeurs de l'arbre selon le parcours "en ordre".

4. Recherche

5. Suppression

PS : si vous avez le temps, vous pouvez également tester la suppression itérative vue en TD.

6. Affichage en arbre

Pour bien comprendre l'effet de la suppression, essayez de produire un affichage un peu plus joli pour l'arbre, par exemple :

   |   |   |   |41
   |   |   |32-|
   |   |27-|
   |   |   |24
   |23-|
   |   |   |16
   |   |14-|
   |   |   |12
10-|
   |   |   |8
   |   |7--|
   |   |   |6--|
   |   |   |   |5
   |3--|
   |   |2--|
   |   |   |1

ancien sujet