En informatique théorique, un arbre 2-3 est une structure de données arborescente où chaque nœud ayant des enfants ( nœud interne ) a soit deux enfants (nœud 2) et une étiquette, soit trois enfants (nœud 3) et deux étiquettes. Un arbre 2–3 est un arbre B d'ordre 3. Les feuilles de l'arbre n'ont pas d'enfants et ont une ou deux étiquettes,. Les arbres 2-3 ont été inventés par John Hopcroft en 1970.
Les arbres 2-3 doivent être équilibrés, c'est-à-dire que chaque feuille doit être à la même profondeur. Cela implique que chaque sous-arbre gauche, du milieu, et droit d'un nœud contiennent des quantités proches de données.
Définitions
On dit qu'un nœud interne est un 2-nœud s'il possède un élément de données et deux enfants.
On dit qu'un nœud interne est un 3-nœud s'il possède deux éléments de données et trois enfants.
Un 4-nœud, comportant trois éléments de données, peut être créé temporairement lors de la manipulation de l'arbre, mais n'est jamais stocké de manière permanente dans l'arbre.
2-nœud
3-nœud
On dira que T est un arbre 2–3 si et seulement si l'une des affirmations suivantes est vraie:
T est vide. C'est-à-dire que T n'a aucun nœud.
T est un 2-nœud d'étiquette , de fils gauche et de fils droit , alors
et sont des arbres 2-3 de même hauteur.
est plus grand que tout élément de .
est plus petit que tout élément de .
est un 3-nœud d'étiquettes et où , de fils gauche , de fils du milieu et de fils droit , alors
, et sont des arbres 2-3 de même hauteur.
est plus grand que tout élément de et plus petit que tout élément de .
est plus grand que tout élément de et plus petit que tout élément de .
«The 2–3 trees defined at the close of Section 6.2.3 are equivalent to B-Trees of order 3.»
↑R. Hernández, J. C. Lázaro, R. Dormido et S. Ros, Estructura de Datos y Algoritmos, Prentice Hall, (ISBN84-205-2980-X)
↑Alfred V. Aho, John E. Hopcroft et Jeffrey D. Ullman, The Design and Analysis of Computer Algorithms, Addison-Wesley, (ISBN978-0-201-00029-0, lire en ligne), pp.145–147