Files
cours/tp6_enirely/tp6/Pile_Tuple.py

61 lines
1.3 KiB
Python

def creer_pile_vide():
"""Crée une pile vide sous forme de tuple.
Returns:
tuple: Une pile vide représentée par un tuple vide.
"""
return ()
def est_pile_vide(pile):
"""Vérifie si la pile est vide.
Args:
pile (tuple): La pile à vérifier.
Returns:
bool: True si la pile est vide, False sinon.
"""
return pile == ()
def sommet(pile):
"""Renvoie l'élément au sommet de la pile.
Args:
pile (tuple): La pile dont on veut connaître le sommet.
Returns:
_type_: L'élément au sommet de la pile.
Raises:
AssertionError: Si la pile est vide.
"""
assert not est_pile_vide(pile), "Pile vide!"
return pile[-1]
def empiler(pile, elt):
"""Ajoute un élément au sommet de la pile.
Args:
pile (tuple): La pile actuelle.
elt (_type_): L'élément à ajouter au sommet de la pile.
Returns:
tuple: La nouvelle pile avec l'élément ajouté.
"""
return pile + (elt,)
def depiler(pile):
"""Retire l'élément au sommet de la pile.
Args:
pile (tuple): La pile dont on veut retirer le sommet.
Returns:
tuple: La nouvelle pile sans l'élément au sommet.
Raises:
AssertionError: Si la pile est vide.
"""
assert not est_pile_vide(pile), "Pile vide!"
return pile[:-1]