Cours du 12/12/2025 de DEV.3.2

This commit is contained in:
2025-12-12 14:43:10 +01:00
parent 93a79b5efc
commit 64daec6a70

23
DEV.3.2/cours/4.Piles.md Normal file
View File

@@ -0,0 +1,23 @@
## Principe
Une pile est une structure de données abstraite (une boîte noir) qui supporte les opérations suivantes :
* *push* : ajoute un élément à la pile élément par élément
* *pop* : retire un élément de la pile et renvoie l'élément le plus récent :
* *empty* : détermine si la pile est vide
L'historique navigateur est une pile qui a été augmenté. Le bouton back est une opération utilisé ave la partie pile. Stocker les actions utilisateurs avec une pile.
Une pile peut servir pour un retour arrière, pour simuler une récursivité.
## En java
"La classe *stack* est vraiment merdissime" s'exclama Luc...
L'interface *Deque* représente une pile (entre autres).
push -> addLast (version simple : offer)
pop -> removeLast (version simple : poll)
empty -> isEmpty (null)
Cette interface est réalisée par *ArrayDeque* et *LinkedList*.
# A monter soi même
Une pile peut être codée avec une liste chainée. On range les éléments du plus récent au plus ancien afin de toujours travailler au début.
Une pile peut être codée également avec un tableau. Les éléments sont ordonnés du plus ancien au plus récent. On peut gérer les problèmes de capacité en limitant la pile ou en redimensionnant le tableau.