Dans chaque cas, indiquer quelle structure de données vous semble la plus adaptée, et donner une exemple de création et d'interaction avec la structure de données.
TableauCréer une classe Tableau qui implémente les quatre méthodes
ci-dessous en stockant les données du tableau dans un attribut
appelé data de type liste.
tableau.ajout(index, élément) ;tableau.suppr(index) ;tableau.est_vide()tableau.longueur()On donne ci-dessous une séquence d'instructions d'initialisation et
d'utilisation d'un tableau.
# instanciation
tab = Tableau()
# utilisation
tab.longueur() # renvoie 0
tab.est_vide() # renvoie True
tab.ajout(0, "pomme")
tab.data # renvoie ['pomme']
tab.ajout(1, "poire")
tab.ajout(0, "pêche")
tab.data # ['pêche', 'pomme', 'poire']
tab.est_vide() # renvoie False
tab.suppr(2)
tab.suppr(0)
tab.data # renvoie ['pomme']Ajoutez ensuite la possibilité d'initialiser (méthode
__init__())les données du tableau en fournissant un paramètre de
type liste lors de l'instanciation. Et ajoutez également une
méthode d'affichage du tableau (méthode __repr__()) pour afficher
les tableaux sous la forme: "Tableau([e1, e2, ..., en])".
On donne ci-dessous une séquence d'instructions d'initialisation et
d'utilisation d'un tableau.
# instanciation
tab1 = Tableau([2, 6, 5])
# utilisation
tab1.longueur() # renvoie 3
tab1.est_vide() # renvoie False
tab1.ajout(0, 12)
tab1.suppr(2)
print(tab1) # renvoie "Tableau([12, 2, 5])"Pour aller plus loin: Cacher la structure de liste de
l'attribut data en autorisant l'initialisation sans les crochets:
tab2 = Tableau(2, 6, 5), et en modifiant la méthode d'affichage
pour que: print(tab2) renvoie: "Tableau(2, 6, 5)".
Pour cela on utilisera le paramètre spécial *args, et la méthode
join des str en Python.
Pour aller encore plus loin: Rendre l'utilisation des tableaux
plus aisée en permettant le chaînage des méthodes
tableau.méthode1().méthode2().méthode1()...
On donne ci-dessous une séquence d'instructions d'initialisation et
d'utilisation d'un tableau.
# instanciation
tab3 = Tableau()
# utilisation
tab3.ajout(0, 12).ajout(1, 13).ajout(0, 9)
print(tab3) # renvoie "Tableau(9, 12, 13)"
tab3.suppr(2).suppr(0)
print(tab3) # renvoie "Tableau(12)"
tab3.suppr(0).est_vide() # renvoie True