Exercice 3 · Bac Numérique et Sciences Informatiques Sujets zéro et spécimens sujet 2023 (sujet 2)

Thème : Arbres : vocabulaire, mesures et algorithmique · Tiré du sujet Sujet 2 (2023)

Énoncé

Exercice 3 (4 points)

Cet exercice est consacré aux arbres binaires de recherche et à la notion d'objet.

1. Voici la définition d'une classe nommée ArbreBinaire, en Python:

a.

En utilisant la classe définie ci-dessus, donner un exemple d'attribut, puis un exemple de méthode.

b.

Après avoir défini la classe ArbreBinaire, on exécute les instructions Python suivantes:

r = ArbreBinaire(15)

r.insert_gauche(6)

r.insert_droit(18)

a = r.get_valeur()

b = r.get_gauche()

c = b.get_valeur()

Donner les valeurs associées aux variables a et c après l'exécution de ce code.

a =

c =

On utilise maintenant la classe ArbreBinaire pour implémenter un arbre binaire de recherche.

On utilisera la définition suivante: un arbre binaire de recherche est un arbre binaire, dans lequel:

on peut comparer les valeurs des nœuds: ce sont par exemple des nombres entiers, ou des lettres de l'alphabet.

si x est un nœud de cet arbre et y est un nœud du sous-arbre gauche de x, alors il faut que y.valeur <= x.valeur.

si x est un nœud de cet arbre et y est un nœud du sous-arbre droit de x, alors il faut que y.valeur => x.valeur.

2.

On exécute le code Python suivant. Représenter graphiquement l'arbre ainsi obtenu.

racine_r = ArbreBinaire(15)

racine_r.insert_gauche(6)

racine_r.insert_droit(18)

r_6 = racine_r.get_gauche()

r_6.insert_gauche(3)

r_6.insert_droit(7)

r_18 = racine_r.get_droit()

r_18.insert_gauche(17)

r_18.insert_droit(20)

r_3 = r_6.get_gauche()

r_3.insert_gauche(2)

3.

On a représenté sur la figure 1 ci-dessous un arbre. Justifier qu'il ne s'agit pas d'un arbre binaire de recherche. Redessiner cet arbre sur votre copie en conservant l'ensemble des valeurs {2,3,5,10,11,12,13} pour les nœuds afin qu'il devienne un arbre binaire de recherche.

4.

On considère qu'on a implémenté un objet ArbreBinaire nommé A représenté sur la figure 2.

On définit la fonction parcours_infixe suivante, qui prend en paramètre un objet ArbreBinaire T et un second paramètre parcours de type liste.

Numéro de lignes

Fonction parcours_infixe

1

2

3

4

5

6

7

def parcours_infixe(T, parcours):

""" Affiche la liste des valeurs de l'arbre """

if T is not None:

parcours_infixe(T.get_gauche(), parcours)

parcours.append(T.get_valeur())

parcours_infixe(T.get_droit(), parcours)

return parcours

Donner la liste renvoyée par l'appel suivant: parcours_infixe(A, [ ]).

Énoncé: Exercice 3 · Bac Numérique et Sciences Informatiques Sujets zéro et spécimens sujet 2023 (sujet 2)

Corrigé

Corrigé proposé par AprenAI (non officiel)

1.a. Donner un exemple d'attribut

Réponse : valeur / enfant_gauche / enfant_droit

1.a. Donner un exemple de méthode

Réponse : insert_gauche / insert_droit / get_valeur / get_gauche / get_droit / __init__

1.b. Valeur associée à la variable a

Réponse : 15

1.b. Valeur associée à la variable c

Réponse : 6

Les réponses des 3 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 3 - Questions 2 à 7 · Sujets zéro et spécimens sujet 2023 (sujet 1) · Exercice 3 · Sujets zéro et spécimens sujet 2021 (sujet 1) ›

Plus d’exercices d’Arbres : vocabulaire, mesures et algorithmique