TP : Les Arbres
Exercice 1 :
Dans ce TP, nous allons implémenter des arbres binaires en Python. On choisit de représenter l’arbre vide
par la liste vide, et un arbre de racine étiquetée par « e » et fils « fg » et « fd » par la liste [e, fg, fd] Dans
ces exercices, nous allons travailler sur cet arbre :
A = [40, [14, [5, [], []], [4, [], [8, [], []]]] , [6, [], []]]
Question 1
Ecrire une fonction calculant la hauteur d’un arbre.
Question 2
Ecrire une fonction calculant le nombre de nœuds d’un arbre binaire.
Question 3
Ecrire une fonction calculant le nombre de feuilles d’un arbre binaire.
Exercice 2 :
Un arbre binaire de recherche est un arbre défini comme suit :
• Les étiquettes des nœuds sont appelées des clés.
• Les clés de tous les nœuds d’un sous-arbre gauche d’un nœud X sont inférieures ou égales à la clé de X.
• Les clés de tous les nœuds d’un sous-arbre droit d’un nœud X sont strictement supérieures
à la clé de X.
Question 1
Ecrire une fonction inserer(A, x) qui fait insérer un élément x dans un ABR A.
Question 2
Ecrire une fonction construireABR(L) qui prend une liste L et retourne un ABR avec les éléments de la liste
L.
Question 3
Construire un arbre A en utilisant les éléments de la Liste suivante : L= [59, 18, 44, 8, 57, 36, 52, 61].
Question 4
Ecrire deux fonctions minABR(A) et maxABR(A) qui prend en paramètre un ABR A et retourne l’élément
minimal et l’élément maximal respectivement.
Question 5
Ecrire une fonction infixe(A, P) qui prend en paramètre un arbre A et une liste vide P et remplit cette liste
avec le parcours infixe de l’arbre A.
Question 6
Ecrire une fonction triABR(L) qui prend en paramètre une liste L d’entier et qui retourne une liste triée
des éléments de L, en utilisant les ABR et le parcours infixe.