Algorithmes Arbres Binaires de Recherche (ABR)
Les Arbres Binaires de Recherche (ABR, BST en anglais) sont des arbres binaires qui possèdent les propriétés suivantes :
- Toutes les étiquettes de des noeuds du sous-arbre gauche sont inférieures à l'étiquette de la racine.
- Toutes les étiquettes de des noeuds du sous-arbre droit sont supérieures à l'étiquette de la racine.
- Les sous-arbres gauche et droit sont eux mĂŞme des ABR.
ILs peuvent être implémentés avec la POO.
En plus du constructeur de la classe Noeud, nous avons besoin de 3 méthodes :
-
rechercher(v): qui retournetruesivest l'une des étiquettes de l'ABR,falsesinon. -
inserer(v): qui insère un nouveau noeud d'étiquettevdans l'ABR, en le plaçant à un endroit (non forcément unique) qui respecte le maintient des propriétés des ABR. -
supprimer(v): qui supprime un noeud le noeud trouvé d'étiquetteven reconstruisant un ABR. Il y a plusieurs choses à réfléchir pour implémenter cette méthode... -
Enfin, La méthode
inserersera utilisée de manière successive sur les éléments d'une liste dans la méthodeinserer_tout.
Définition de la classe Noeud et de son construteur⚓︎
Ainsi la classeNoeud permet de créer un arbre, l'arbre est le noeud racine.
Méthode rechercher⚓︎
Dans le code qui suit les lignes des codes des méthodes ont été mélangées. Il faut les remettre dans l'ordre.
| Python | |
|---|---|
Méthode inserer⚓︎
Seule une partie du code de la méthdoe inserer a été retrouvée. Le reste est a écrire.
| Python | |
|---|---|
Pour permettre un ajout de noeuds par lot, nous utlisons la méthode inserer_tout
Ainsi pour représenter un ABR avec les noeuds 15,17,21,10,8,7 et 25, nous écrivons.
Méthode supprimer⚓︎
Pour la méthode supprimer tout est à écrire
Extra
Le code fonctionne mais ne vérifie jamais si la condition d'unicité des clés est respectée pour les ABR. Écrire un supplément dans le code qui ajoute cette vérification.