Parcours
/
x86-64 Assembly
x86-64 Assembly
/
Exercices
/
Arbre binaire de recherche
Arbre binaire de recherche

Arbre binaire de recherche

Moyen

Instructions

Insère et recherche des nombres dans un arbre binaire.

Quand on a besoin de représenter des données triées, un tableau n'est pas une bonne structure de données.

Imaginons que l'on ait le tableau [1, 3, 4, 5], et que l'on y ajoute 2, ce qui donne [1, 3, 4, 5, 2]. Il faut maintenant trier à nouveau tout le tableau ! On peut faire mieux en remarquant qu'il suffit de faire de la place pour le nouvel élément [1, nil, 3, 4, 5], puis d'y insérer l'élément. Mais cela oblige quand même à décaler d'une position de nombreux éléments.

Les arbres binaires de recherche, en revanche, permettent de traiter des données triées bien plus efficacement.

Un arbre binaire de recherche est constitué d'une série de nœuds reliés entre eux. Chaque nœud contient une donnée (par exemple le nombre 3), une variable nommée left et une variable nommée right. Les variables left et right pointent vers nil, ou vers d'autres nœuds. Comme ces autres nœuds ont eux-mêmes d'autres nœuds en dessous d'eux, on dit que les variables left et right pointent vers des sous-arbres. Toutes les données du sous-arbre gauche sont inférieures ou égales aux données du nœud courant, et toutes les données du sous-arbre droit sont supérieures aux données du nœud courant.

Par exemple, si on a un nœud contenant la donnée 4, et qu'on y ajoute la donnée 2, notre arbre ressemblerait à ceci :

Un graphe avec un nœud racine 4 et un seul nœud enfant 2.

      4
     /
    2

Si on ajoute ensuite 6, il ressemblerait à ceci :

Un graphe avec un nœud racine 4 et deux nœuds enfants 2 et 6.

      4
     / \
    2   6

Si on ajoute ensuite 3, il ressemblerait à ceci

Un graphe avec un nœud racine 4, deux nœuds enfants 2 et 6, et un nœud petit-enfant 3.

       4
     /   \
    2     6
     \
      3

Et si on ajoute ensuite 1, 5 et 7, il ressemblerait à ceci

Un graphe avec un nœud racine 4, deux nœuds enfants 2 et 6, et quatre nœuds petits-enfants 1, 3, 5 et 7.

          4
        /   \
       /     \
      2       6
     / \     / \
    1   3   5   7

Crédits

Les images ont été créées par habere-et-dispertire à l'aide de PGF/TikZ de Till Tantau.


Source

Josh Cheek
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
x86-64 Assembly Exercism

Prêt à commencer Arbre binaire de recherche ?

Inscris-toi sur Exercism pour apprendre et maîtriser x86-64 Assembly avec 22 concepts130 exercices, et un vrai mentorat humain, le tout gratuitement.