À retenir
- Principe LIFO : Dernier Entré, Premier Sorti.
- Deux opérations principales : Empiler (ajouter) et Dépiler (retirer).
- Accès limité uniquement à l'élément du sommet.
Une pile est une structure de données qui fonctionne comme une pile d'assiettes : la dernière posée sur le dessus est obligatoirement la première que l'on doit retirer. En informatique, on appelle ce principe le LIFO (Last In, First Out), ce qui signifie que le dernier élément arrivé est le premier à sortir.
Étymologie
Le mot provient du latin pila, qui désigne un pilier ou un amas d'objets. En informatique, c'est la traduction directe du terme anglais stack. L'idée est celle d'un empilement vertical où l'accès est limité au sommet.
Exemples d'usage
- La fonction Annuler (Ctrl+Z) d'un logiciel : les actions sont empilées et la dernière effectuée est la première annulée.
- L'historique de navigation : quand vous cliquez sur le bouton 'Précédent', vous revenez à la dernière page consultée.
Cas d'usage
Elle est utilisée pour gérer les appels de fonctions dans un programme (la pile d'exécution), pour l'évaluation d'expressions mathématiques ou encore dans les algorithmes de parcours de graphes en profondeur.
Bonnes pratiques
Il faut toujours surveiller la taille de la pile pour éviter un dépassement de pile (stack overflow), ce qui arrive souvent lors d'une boucle infinie ou d'une récursion trop profonde. C'est une structure idéale quand on a besoin de mémoriser un état pour y revenir plus tard.
Synonymes
Antonymes
Conseil
Pour bien comprendre le concept, visualisez un tube de bonbons : vous ne pouvez manger que celui qui est tout en haut. Si vous voulez celui du fond, vous devez d'abord retirer tous ceux qui sont au-dessus.
Questions fréquentes
Quelle est la différence entre une pile et une file ?
Dans une pile (LIFO), le dernier arrivé sort en premier. Dans une file (FIFO), comme à la caisse d'un magasin, le premier arrivé est le premier servi.
C'est quoi un Stack Overflow ?
C'est une erreur qui survient quand la pile de mémoire allouée au programme est pleine, souvent à cause d'une fonction qui s'appelle elle-même sans fin.