Aller au contenu

Arbres - ABR

I. Objectifs des ABR ou Arbres Binaires de Recherche⚓

ABR

👉 Un arbre binaire de recherche (ABR) est un arbre binaire dans lequel chaque nƓud possĂšde une clĂ©, telle que chaque nƓud du sous-arbre gauche ait une clĂ© strictement infĂ©rieure Ă  celle du nƓud considĂ©rĂ©, et que chaque nƓud du sous-arbre droit possĂšde une clĂ© supĂ©rieure ou Ă©gale Ă  celle-ci — selon la mise en Ɠuvre de l'ABR, on pourra interdire ou non des clĂ©s de valeur Ă©gale.

😀 Un arbre binaire de recherche permet des opĂ©rations rapides pour rechercher une clĂ©, insĂ©rer ou supprimer une clĂ©.

Source : https://fr.wikipedia.org/wiki/Arbre_binaire_de_recherche

ABR 1

Source de l'image : http://ressources.unisciel.fr/algoprog/s46bst/emodules/br00macours1/res/br00cours-texte-xxx.pdf

DĂ©finition

En informatique, un arbre binaire de recherche ou ABR (en anglais, binary search tree ou BST) est une structure de données représentant un ensemble dont les clés appartiennent à un ensemble totalement ordonné.

Les opĂ©rations caractĂ©ristiques sur les arbres binaires de recherche sont l’insertion, la suppression, et la recherche d’une valeur. Ces opĂ©rations sont peu couteuses si l’arbre n’est pas trop dĂ©sĂ©quilibrĂ©.

💡 En pratique, les valeurs sont des clĂ©s permettant d’accĂ©der Ă  des enregistrements.

DĂ©finition d'un ABR ❀

Un arbre binaire de recherche est un arbre binaire dont les valeurs des nƓuds (valeurs qu'on appelle Ă©tiquettes, ou clĂ©s) vĂ©rifient la propriĂ©tĂ© suivante :

  • l'Ă©tiquette d'un nƓud est supĂ©rieure ou Ă©gale Ă  celle de chaque nƓud de son sous-arbre gauche.
  • l'Ă©tiquette d'un nƓud est strictement infĂ©rieure Ă  celle du chaque nƓud de son sous-arbre droit.

exABR.png

  • À noter que l'arbre 3 (qui est bien un ABR) est appelĂ© arbre filiforme.

  • L'arbre 5 n'est pas un ABR Ă  cause de la feuille 9, qui fait partie du sous-arbre gauche de 3 sans lui ĂȘtre infĂ©rieure.

  • Remarque : on pourrait aussi dĂ©finir un ABR comme un arbre dont le parcours infixe est une suite croissante.

Une définition plus "mathématique"

Soit E un ensemble muni d’une relation d’ordre total, et soit A un arbre binaire portant des valeurs de E. L’arbre A est un arbre binaire de recherche si pour tout nƓud p de A, la valeur de p est strictement plus grande que les valeurs figurant dans son sous-arbre gauche et strictement plus petite que les valeurs figurant dans son sous-arbre droit. Cette dĂ©finition suppose donc qu’une valeur n’apparaĂźt au plus qu’une seule fois dans un arbre de recherche.

⚠ Attention, nous verrons dans ce cours d'autres dĂ©finitions possibles des ABR, lĂ©gĂšrement diffĂ©rentes (possibilitĂ©s de clĂ©s identiques notamment, que l'on peut appeler des "doublons").

😉 A chaque fois, la dĂ©finition des ABR sera prĂ©cisĂ©e.

II. Utilisation de binarytree pour crĂ©er un ABR et rechercher une clĂ©âš“ïžŽ

😀 Voici une correction ...

Vidéo Lumni

Dans la vidéo qui suit, la définition d'un ABR est légÚrement différente de celle que nous venons de voir.

ABR sur Lumni

III. ImplĂ©mentation itĂ©rative et rĂ©cursive d'un ABR, recherche de clĂ© et insertion⚓

😀 Voici une correction ...

IV. Utilisation d'un ABR⚓

⌛ Avant de commencer

Vous devez travailler sur Basthon

TĂ©lĂ©charger dans le mĂȘme dossier :

😀 Voici une correction ...

V. Bilan⚓

✍ A noter :

👉 Un arbre binaire de recherche (ABR) est une structure qui permet une recherche de façon trùs efficace .

😊 La recherche dans un ABR Ă©quilibrĂ© est de coĂ»t logarithmique

CrĂ©dits⚓

Jean-Louis Thirot , Mireille Coilhac, Valérie Mousseaux, Gilles Lassus