Ep 29
ⶠTélécharger le sujet en pdf.
EXERCICE 1âïž
Un arbre binaire est implémenté par la classe Arbre
donnée ci-dessous.
Les attributs fg
et fd
prennent pour valeurs des instances de la classe Arbre
ou None
.
class Arbre:
def __init__(self, etiquette):
self.v = etiquette
self.fg = None
self.fd = None
Lâarbre ci-dessus sera donc implĂ©mentĂ© de la maniĂšre suivante :
a = Arbre(1)
a.fg = Arbre(4)
a.fd = Arbre(0)
a.fd.fd = Arbre(7)
Ăcrire une fonction rĂ©cursive taille
prenant en paramĂštre une instance a
de la classe Arbre
et qui renvoie la taille de lâarbre que cette instance implĂ©mente.
Ăcrire de mĂȘme une fonction rĂ©cursive hauteur
prenant en paramĂštre une instance a
de la classe Arbre
et qui renvoie la hauteur de lâarbre que cette instance implĂ©mente.
Si un arbre a un seul nĆud, sa taille et sa hauteur sont Ă©gales Ă 1. Sâil est vide, sa taille et sa hauteur sont Ă©gales Ă 0.
Tester les deux fonctions sur lâarbre reprĂ©sentĂ© ci-dessous :
RĂ©ponse
Complétez le code ci-dessous
Solution
EXERCICE 2âïž
La méthode insert
de la classe list
permet dâinsĂ©rer un Ă©lĂ©ment dans une liste Ă un indice
donné.
Le but de cet exercice est, sans utiliser cette mĂ©thode, dâĂ©crire une fonction ajoute
réalisant cette insertion en produisant une nouvelle liste.
Cette fonction ajoute
prend en paramĂštres trois variables indice
, element
et liste
et renvoie une liste L
dans laquelle les éléments sont ceux de la liste liste
avec, en
plus, lâĂ©lĂ©ment element
Ă lâindice indice
.
On considĂšre que les variables indice
et element
sont des entiers positifs et que les éléments de liste
sont également des entiers positifs. Les éléments de la liste liste
, dont les indices sont supérieurs ou égaux à indice
apparaissent décalés vers la droite dans la liste L
.
Si indice
est supĂ©rieur ou Ă©gal au nombre dâĂ©lĂ©ments de la liste liste
, lâĂ©lĂ©ment element est ajoutĂ© dans L
aprÚs tous les éléments de la liste liste
.
Exemple :
>>> ajoute(1, 4, [7, 8, 9])
[7, 4, 8, 9]
>>> ajoute(3, 4, [7, 8, 9])
[7, 8, 9, 4]
>>> ajoute(4, 4, [7, 8, 9])
[7, 8, 9, 4]
RĂ©ponse
Complétez le code ci-dessous