Un arbre binaire est ici défini comme suit :
NoneUn 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
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
init_arbre qui crée un arbre de recherche vide.feuille qui prend en argument une valeur et retourne une feuilleL'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
insérer_rec dans arbreRecherche.pyÉcrivez et testez une fonction qui affiche les valeurs de l'arbre selon le parcours "en ordre".
recherche_rec qui prend en argument une valeur et retourne True si la valeur est présente dans l'arbre et False si elle est absente. cherche_max qui retourne le plus grand élément d'un arbrecherche_max pour écrire une fonction de suppression récursive supprime_rec qui prend en argument une valeur et supprime la valeur si celle-ci est présente dans l'arbre et ne change rien sinon. 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