Qu'est-ce que Arbre binaire de recherche (binary search tree) ?
Arbre binaire dans lequel, pour chaque nœud, toutes les valeurs du sous-arbre gauche sont plus petites et toutes celles du sous-arbre droit plus grandes que celle du nœud. La recherche, l'insertion et la suppression prennent un temps proportionnel à la hauteur de l'arbre, et un parcours infixe visite les valeurs dans l'ordre croissant.
Nom japonais: 二分探索木
« Arbre binaire de recherche (binary search tree) » apparaît dans 4 questions d'entraînement réparties sur 1 thèmes, dont Structures de données et algorithmes.
Domaine: Structures de données et algorithmes
Arbres déséquilibrés et arbres auto-équilibrés
Un arbre binaire de recherche de n nœuds a une hauteur d'environ log₂ n s'il est équilibré, mais insérer des valeurs dans l'ordre trié, comme 1, 2, 3, …, produit une chaîne unique qui s'étend d'un seul côté, de hauteur n−1. Une recherche y prend alors O(n), comme dans une liste chaînée. Les arbres AVL et les arbres rouge-noir sont des arbres binaires de recherche auto-équilibrés qui se réorganisent par des opérations appelées rotations à chaque insertion et suppression, ce qui maintient la hauteur en O(log n) ; ils servent aux dictionnaires et ensembles ordonnés de nombreux langages de programmation.
Ordres de parcours
Parmi les façons de visiter tous les nœuds d'un arbre figurent le parcours préfixe, qui visite chaque nœud en premier ; le parcours infixe, qui visite le sous-arbre gauche, le nœud, puis le sous-arbre droit ; le parcours postfixe, qui visite d'abord les enfants ; et le parcours en largeur (parcours par niveaux), qui visite l'arbre niveau par niveau. Le parcours infixe d'un arbre binaire de recherche énumère les valeurs dans l'ordre croissant, ce qui donne un listage trié. Le parcours postfixe d'un arbre d'expression donne la notation polonaise inverse.
Questions fréquentes
En quoi un arbre binaire de recherche diffère-t-il d'un tas ?
Un arbre binaire de recherche suit la règle « plus petit à gauche, plus grand à droite » : il permet donc de chercher n'importe quelle valeur et d'énumérer les valeurs dans l'ordre. Un tas binaire suit seulement la règle « un parent est plus grand (ou plus petit) que ses enfants » : il permet de retirer rapidement le maximum (ou le minimum), mais ne convient pas à la recherche de valeurs quelconques.
Quand utiliser un arbre binaire de recherche ou un arbre B ?
En mémoire, on utilise des arbres binaires de recherche auto-équilibrés ; pour les supports lus par blocs, comme les disques et les SSD, on utilise des arbres B (arbres B+), qui gardent l'arbre peu profond en plaçant de nombreuses clés dans chaque nœud.