Numérique et Sciences Informatiques > Algorithmique : Structures de Données Avancées > Arbres Binaires > Définition et terminologie
Représentation des Arbres Binaires
Ce cours explique comment représenter un arbre binaire en mémoire. Conçu spécialement pour les élèves de lycée en spécialité NSI.
Représentation par Nœuds Liés (Pointeurs)
La méthode la plus courante pour représenter un arbre binaire est d'utiliser des nœuds liés. Chaque nœud contient les éléments suivants : En Python, cela pourrait être représenté par une classe : En C++ : Pour créer l'arbre de l'exemple précédent :
null
s'il n'a pas d'enfant gauche).null
s'il n'a pas d'enfant droit).
class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
struct Node {
int value;
Node* left;
Node* right;
};
root = Node('A')
root.left = Node('B')
root.right = Node('C')
root.left.left = Node('D')
root.left.right = Node('E')
Représentation par Tableau (Implicite)
Il est également possible de représenter un arbre binaire en utilisant un tableau, bien que cette méthode soit moins courante et plus adaptée aux arbres binaires complets. L'idée est de stocker les nœuds de l'arbre dans un tableau, en utilisant les indices pour représenter les relations parent-enfant. La racine est à l'indice 1 (ou 0, selon la convention), et les enfants d'un nœud à l'indice Exemple : Reprenons l'arbre précédent : La représentation en tableau serait : Les enfants de 'B' (indice 2) sont 'D' (indice 4 = 2*2) et 'E' (indice 5 = 2*2 + 1). Avantages : Simple à implémenter, efficace en espace pour les arbres binaires complets. Inconvénients : Gaspillage d'espace pour les arbres non complets, complexité pour les opérations de modification de l'arbre.i
sont situés aux indices 2*i
(enfant gauche) et 2*i + 1
(enfant droit).
A
/ \
B C
/ \
D E
index: 0 1 2 3 4 5 6
value: A B C D E - -
Ce qu'il faut retenir
FAQ
-
Quand est-il préférable d'utiliser la représentation par tableau plutôt que la représentation par nœuds liés ?
La représentation par tableau est préférable lorsque l'arbre est complet et que l'espace est une contrainte importante. Cependant, elle est moins flexible pour les modifications de l'arbre. -
Comment implémenter l'insertion d'un nouveau nœud dans un arbre binaire représenté par un tableau ?
L'insertion dans un arbre binaire représenté par un tableau peut être complexe car il faut déplacer les éléments existants pour maintenir la structure de l'arbre. En général, la représentation par nœuds liés est plus adaptée pour les insertions et suppressions fréquentes.