mirror of
https://github.com/Fare-spec/cours.git
synced 2025-12-07 10:50:36 +00:00
64 lines
1.9 KiB
Python
64 lines
1.9 KiB
Python
import LSC as lsc
|
|
from typing import Any
|
|
|
|
def creer_pile_vide() -> lsc.Liste_Simplement_Chainee:
|
|
"""Crée une pile vide sous forme de liste simplement chaînée.
|
|
|
|
Returns:
|
|
lsc.Liste_Simplement_Chainee: Une pile vide représentée par une liste simplement chaînée.
|
|
"""
|
|
return lsc.creer_liste_vide()
|
|
|
|
def est_pile_vide(pile: lsc.Liste_Simplement_Chainee) -> bool:
|
|
"""Vérifie si la pile est vide.
|
|
|
|
Args:
|
|
pile (lsc.Liste_Simplement_Chainee): La pile à vérifier.
|
|
|
|
Returns:
|
|
bool: True si la pile est vide, False sinon.
|
|
"""
|
|
return lsc.est_vide(pile)
|
|
|
|
def sommet(pile: lsc.Liste_Simplement_Chainee) -> Any:
|
|
"""Renvoie l'élément au sommet de la pile.
|
|
|
|
Args:
|
|
pile (lsc.Liste_Simplement_Chainee): La pile dont on veut connaître le sommet.
|
|
|
|
Returns:
|
|
Any: L'élément au sommet de la pile.
|
|
|
|
Raises:
|
|
AssertionError: Si la pile est vide.
|
|
"""
|
|
assert not est_pile_vide(pile), "Pile vide."
|
|
return lsc.tete(pile)
|
|
|
|
def empiler(pile: lsc.Liste_Simplement_Chainee, element: Any) -> lsc.Liste_Simplement_Chainee:
|
|
"""Ajoute un élément au sommet de la pile.
|
|
|
|
Args:
|
|
pile (lsc.Liste_Simplement_Chainee): La pile actuelle.
|
|
element (Any): L'élément à ajouter au sommet de la pile.
|
|
|
|
Returns:
|
|
lsc.Liste_Simplement_Chainee: La nouvelle pile avec l'élément ajouté.
|
|
"""
|
|
return lsc.ajouter_en_tete(pile, element)
|
|
|
|
def depiler(pile: lsc.Liste_Simplement_Chainee) -> lsc.Liste_Simplement_Chainee:
|
|
"""Retire l'élément au sommet de la pile.
|
|
|
|
Args:
|
|
pile (lsc.Liste_Simplement_Chainee): La pile dont on veut retirer le sommet.
|
|
|
|
Returns:
|
|
lsc.Liste_Simplement_Chainee: 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 lsc.queue(pile)
|