Piles (Stacks)

1. Définition et principe fondamental

Une pile (ou stack en anglais) est une structure de données linéaire, dynamique et ordonnée, dans laquelle les éléments sont manipulés selon une stratégie stricte :

LIFO → Last In, First Out

Cela signifie que le dernier élément ajouté est le premier à être retiré.

C’est une organisation très courante dans les systèmes où l’ordre de traitement est inverse à l’ordre d’arrivée.


2. Structure logique d’une pile

Une pile peut être vue comme une colonne verticale d’objets empilés.

On ne peut y faire qu'une seule chose : empiler au sommet (ajouter) ou dépiler du sommet (retirer).

Contrairement aux listes classiques :


3. Opérations fondamentales

Voici les trois opérations élémentaires associées à une pile :

OpérationDescriptionPython
empiler(x)ajoute un élément au sommetpile.append(x)
dépiler()retire et retourne le sommetpile.pop()
est_vide()teste si la pile est videlen(pile) == 0

Ces trois opérations forment le comportement minimal attendu d’une pile, quel que soit le langage ou le contexte.

En Python, on utilise naturellement une liste pour simuler une pile car elle permet append() et pop() efficacement en fin de liste.

4. Implémentation en Python

Création

pile = []

Empiler un élément

pile.append("élément")

Ajoute au sommet. C’est l’équivalent logique d’empiler une assiette sur une pile.

Dépiler un élément

dernier = pile.pop()

Retire et retourne l’élément au sommet de la pile.

❗ Si la pile est vide, pop() déclenche une erreur (IndexError), il faut donc toujours tester est_vide() avant.

Tester si pile vide

if len(pile) == 0:
    print("pile vide")

5. Contraintes importantes


6. Avantages et intérêt algorithmique


7. Complexité algorithmique

Toutes les opérations de pile en Python avec une liste sont en temps constant (𝑂(1)) :

OpérationComplexité
append()𝑂(1)
pop() (sur le dernier élément)𝑂(1)
len()𝑂(1)
✅ Cela en fait une structure extrêmement rapide et adaptée aux algorithmes exigeants.

8. Cas d’usage généraux

Les piles interviennent dans :

Dans tous ces cas, l’ordre d’arrivée des éléments est crucial, et la pile permet de les traiter à rebours.


9. Bonnes pratiques pour le bac


📌 En résumé