Files
cours/tp6_enirely/tp6_self/Pile_Tuple.py

54 lines
1.1 KiB
Python

# Chacune des fonctions renvoie et n'ont pas d'effet de bord
def creer_pile_vide() -> tuple:
"""Créer une pile vide.
Returns:
Tuple: La pile vide
"""
return ()
def est_pile_vide(pile: tuple) -> bool:
"""Retourne True si la pile est vide, False sinon.
Args:
pile (tuple): La pile à tester
Returns:
bool: True si la pile est vide
"""
return len(pile) == 0
def sommet(pile: tuple) -> any:
"""Renvoie le sommet de la pile.
Args:
pile (tuple): La pile contenant le sommet
Returns:
any: Le sommet de la pile
"""
return pile[-1]
def empiler(pile: tuple, elt: any)-> tuple:
"""ajoute elt au sommet de la pile
Args:
pile (tuple): la pile a modifier
elt (any): l'élement à ajouter
Returns:
tuple: la pile avec l'élement ajouté
"""
return pile + (elt,)
def depiler(pile: tuple) -> tuple:
"""Retire le sommet de la pile
Args:
pile (tuple): La pile avec le sommet
Returns:
tuple: La pile avec le sommet retiré
"""
assert not est_pile_vide(pile), "La pile est vide"
return pile[:-1]