Exercice 1 · Bac Numérique et Sciences Informatiques Métropole 2022 (sujet 2)
Thème : Arbres : vocabulaire, mesures et algorithmique · Tiré du sujet Métropole France 2 (2022)
Énoncé
EXERCICE 1 (4 points)
Cet exercice porte sur les arbres binaires de recherche, la programmation orientée objet et la récursivité.
Dans cet exercice, la taille d'un arbre est le nombre de nœuds qu'il contient. Sa hauteur est le nombre de nœuds du plus long chemin qui joint le nœud racine à l'une des feuilles (nœuds sans sous-arbres). On convient que la hauteur d'un arbre ne contenant qu'un nœud vaut 1 et la hauteur de l'arbre vide vaut 0.
1.
On considère l'arbre binaire représenté ci-dessous:
a.
b.
c.
Représenter sur la copie le sous-arbre droit du nœud de valeur 15.
d.
Justifier que l'arbre de la figure 1 est un arbre binaire de recherche.
e.
On insère la valeur 17 dans l'arbre de la figure 1 de telle sorte que 17 soit une nouvelle feuille de l'arbre et que le nouvel arbre obtenu soit encore un arbre binaire de recherche. Représenter sur la copie ce nouvel arbre.
2.
On considère la classe Noeud définie de la façon suivante en Python:
class Noeud:
def __init__(self, g, v, d):
self.gauche = g
self.valeur = v
self.droit = d a.
Parmi les trois instructions (A), (B) et (C) suivantes, déterminer celle qui construit et stocke dans la variable abr l'arbre représenté ci-contre:
b.
Recopier et compléter la ligne 7 du code de la fonction ins ci-dessous qui prend en paramètres une valeur v et un arbre binaire de recherche abr et qui renvoie l'arbre obtenu suite à l'insertion de la valeur v dans l'arbre abr. Les lignes 8 et 9 permettent de ne pas insérer la valeur v si celle-ci est déjà présente dans abr.
def ins(v, abr):
if abr is None:
return Noeud(None, v, None)
if v > abr.valeur:
return Noeud(abr.gauche, abr.valeur, ins(v, abr.droit))
elif v < abr.valeur:
return....................................
else:
return abr
3.
La fonction nb_sup prend en paramètres une valeur v et un arbre binaire de recherche abr et renvoie le nombre de valeurs supérieures ou égales à la valeur v dans l'arbre abr.
Le code de cette fonction nb_sup est donné ci-dessous:
def nb_sup(v, abr):
if abr is None:
return 0
else:
if abr.valeur >= v:
return 1+nb_sup(v, abr.gauche)+nb_sup(v, abr.droit)
else:
return nb_sup(v, abr.gauche)+nb_sup(v, abr.droit) a.
On exécute l'instruction nb_sup(16, abr) dans laquelle abr est l'arbre initial de la figure 1. Déterminer le nombre d'appels à la fonction nb_sup.
b.
L'arbre passé en paramètre étant un arbre binaire de recherche, on peut améliorer la fonction nb_sup précédente afin de réduire ce nombre d'appels. Écrire le code modifié de cette fonction.

Corrigé
Corrigé proposé par AprenAI (non officiel)
1.a. Donner la taille de cet arbre.
Réponse : 8
1.b. Donner la hauteur de cet arbre.
Réponse : 4
1.c. Représenter sur la copie le sous-arbre droit du nœud de valeur 15. 1.e. Représenter sur la copie ce nouvel arbre après insertion de 17.
Réponse : 1.c. Sous-arbre droit du nœud 15 : Arbre dont la racine est 21, avec un fils droit 27 (feuille) et un fils gauche 18, lequel possède un fils droit 20 (feuille). 1.e. Arbre après insertion de 17 : L'arbre initial de la figure 1 avec un nœud supplémentaire 17 inséré comme fils gauche du nœud 18.
1.d. Justifier que l'arbre de la figure 1 est un arbre binaire de recherche.
Réponse : Pour chaque nœud de l'arbre, toutes les valeurs du sous-arbre gauche sont strictement inférieures à la valeur du nœud, et toutes les valeurs du sous-arbre droit sont strictement supérieures.
Les réponses des 4 questions restantes et l’explication pas à pas sont réservées aux membres Premium. Premium
Résous-le ici : correction automatique, indices et corrigé détaillé.
‹ Exercice 1 · Métropole 1 remplacement 2022 · Exercice 2 · Métropole 2 remplacement 2022 ›
Plus d’exercices d’Arbres : vocabulaire, mesures et algorithmique
- Exercice 1 · Métropole 2025 (sujet 2)
- Exercice 3 - Arbres binaires de recherche · Métropole 2024 (sujet 1)
- Exercice 3 - Partie 1 · Métropole 2023 (sujet 2)
- Exercice 4 · Métropole 2022 (sujet 1)
- Exercice 1 · Métropole 1 remplacement 2022
- Exercice 2 · Métropole 2 remplacement 2022
- Exercice 3 · Métropole Candidat libre 2021 (sujet 2)
- Exercice 1 · Métropole 2021 (sujet 1)
- Exercice 5 · Métropole 1 remplacement 2021
- Exercice 1 - Arbres · Métropole 2021 (sujet 2)