Piles
Dans ce TD, nous allons implémenter les piles.
Pour cette implémentation, nous allons utiliser un tableau.
Et implémenter, dessus les différentes méthodes à l'aide des méthodes
Pour cette implémentation, nous allons utiliser un tableau.
Et implémenter, dessus les différentes méthodes à l'aide des méthodes
append
et
pop
.
Créer une classe
Pile
qui possèdera 2 attributs :
pile
: un tableau vide;taille
: un entier qui représente la taille de la pile
Exemples :
>>> p = Pile()
>>> print(p.pile)
[]
>>> print(p.taille)
0
La méthode
empiler
doit permettre d'ajouter une valeur dans l'attribut pile
tout en
incrémentant l'attribut taille
Ajouter une méthode
empiler
qui prend en paramètre une valeur et qui la stocke dans l'attribut
pile
, à chaque empilement, l'attribut taille est incrémenter de 1.Exemple :
>>> p = pile()
>>> p.empiler("♥")
>>> p.empiler("les")
>>> p.empiler("structures")
>>> p.empiler("de")
>>> p.empiler("données")
>>> print(p.pile)
["♥","les","structures","de","données"]
>>> print(p.taille)
5
On souhaite maintenant pouvoir savoir si la pile est vide où non.
Implémenter la méthode
est_vide
, qui ne prend pas de paramètre et renvoie un booléen (True/False)
suivant que la pile est vide ou non.
>>> p = pile()
>>> print(p.est_vide())
True
>>> p.empiler(1)
>>> print(p.est_vide())
False
On souhaite maintenant pouvoir dépiler les éléments de la pile.
Ainsi dépiler doit permettre d'enlever et de récuper le sommet de la pile.
Ainsi dépiler doit permettre d'enlever et de récuper le sommet de la pile.
Implémenter la méthode
Il faudra actualiser la taille de la pile après avoir dépiler
depiler
, qui ne prend pas de paramètre et renvoie le sommet de la pile en le
supprimant de la pile si la pile n'est pas vide et None
sinon. Il faudra actualiser la taille de la pile après avoir dépiler
>>> p = pile()
>>> p.empiler(1)
>>> p.empiler(2)
>>> p.empiler(3)
>>> sommet = p.depiler()
>>> print(sommet)
3
>>> print(p.taille)
2
>>> p1 = pile()
>>> print(p1.depiler())
None
On souhaite aussi pouvoir lire le sommet de pile, c'est à dire obtenir sa valeur sans modifier la pile.
Implémenter la méthode sommet qui ne prend pas de paramètre et qui renvoie le sommet de la liste sans
modifier la pile.
Exemple
>>> p = pile()
>>> p.empile(2)
>>> p.empile(4)
>>> p.empile(5)
>>> p.empile(9)
>>> print(p.sommet())
9
>>> print(p.pile)
[2, 4, 5, 9]
Il est toujours utile de savoir si un élément appartient à un pile.
Implémenter une méthode
appartient
qui prend en paramètre un élement et qui renvoie un booléen :
True
si l'élément est présent dans la pileFalse
sinon
Exemple
>>> p = pile()
>>> p.empile(2)
>>> p.empile(4)
>>> p.empile(5)
>>> p.empile(9)
>>> print(p.appartient(1))
False
>>> print(p.appartient(5))
True
Bravo !!!
Tu as fini d'implémenter une pile.
Le code de fin de TD est 955316 Tu peux maintenant commencer à implémenter les
Tu as fini d'implémenter une pile.
Le code de fin de TD est 955316 Tu peux maintenant commencer à implémenter les
files
: Implémentation des files