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 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.
Implémenter la méthode 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 pile
  • False 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 files : Implémentation des files
Editeur + Tableau blanc Document