Ceci est une ancienne révision du document !
Les arbres
Les arbres sont des types abstraits permettant de structurer les données.
Les arbres binaires sont une forme plus précise d'arbre où chacun des nœuds ne peut avoir que 2 fils maximums:
Quelques thermes sont à connaitre pour parler d'arbre :
nœud : élément qui forme l'arbre (ex : A, B, …)
nœud racine : initiale départ de l'arbre (ici : A)
nœud fils : 1 ou 2 nœud(s) sous un autre nœud (ex : J et K sont les fils de F)
nœud père : nœuds au-dessus de nœuds fils (ex: F est le père de J et K)
feuille : nœud n'ayant aucun fils (ex : D)
arête : segment qui relie deux nœuds
profondeur d'un nœud : nombre de nœuds du chemin entre la racine et le nœud (ex : F est à une profondeur de 3)
hauteur d'un arbre : profondeur maximale de l'arbre (ici : 5)
taille d'un arbre : nombre de nœuds composant l'arbre (ici : 17)
Un arbre binaire ( ayant donc 1 ou 2 fils) aura forcément des sous-arbres , qui peuvent être comparés à des branches d'un vraie arbre. Donc le sous-arbres gauches est tous les nœuds qui sont sous le nœud donné à gauche. C'est la même chose pour le sous-arbre droit mais cependant c'est à droite .
Ici , j'entours les sous-arbres droit et gauche de A.
Arbres binaires de recherche
Un arbre binaire de recherche est un cas particulier d'arbre binaire. Pour avoir un arbre binaire de recherche :
il faut avoir un arbre binaire
il faut que les clés de noeuds composant l'arbre soient ordonnables (on doit pouvoir classer les noeuds, par exemple, de la plus petite clé à la plus grande)
soit x un noeud d'un arbre binaire de recherche :
Si y est un noeud du sous-arbre gauche de x, alors il faut que y.clé ⩽ x.clé.
Si y est un noeud du sous-arbre droit de x, il faut alors que x.clé ⩽ y.clé.