Junior — Middle
Quels sont les principaux avantages et inconvénients de la structure de données Stack?
sobes.tech IA
Réponse de l'IA
Une pile (Stack) est une structure de données suivant le principe LIFO (Last In, First Out), où le dernier élément ajouté est le premier à être extrait.
Avantages :
- Facilité d'implémentation et d'utilisation.
- Accès rapide à l'élément supérieur (les opérations push, pop, peek s'effectuent en O(1)).
- Très adaptée pour les tâches liées au traitement en ordre inverse, par exemple, la traversée d'arbre, l'annulation d'actions, l'analyse syntaxique.
Inconvénients :
- Accès limité : on ne peut travailler qu'avec l'élément supérieur, pas d'accès arbitraire.
- La taille de la pile peut être limitée (par exemple, la pile d'appels dans un programme), ce qui peut entraîner un dépassement.
Exemple en Go :
package main
import "fmt"
type Stack []int
func (s *Stack) Push(v int) {
*s = append(*s, v)
}
func (s *Stack) Pop() (int, bool) {
if len(*s) == 0 {
return 0, false
}
index := len(*s) - 1
elem := (*s)[index]
*s = (*s)[:index]
return elem, true
}
func main() {
var s Stack
s.Push(10)
s.Push(20)
fmt.Println(s.Pop()) // 20, true
fmt.Println(s.Pop()) // 10, true
}