Junior — Middle
¿Cuáles son las principales ventajas y desventajas de la estructura de datos Stack?
sobes.tech AI
Respuesta de la IA
La pila (Stack) es una estructura de datos con el principio de funcionamiento LIFO (Last In, First Out), donde el último elemento añadido se extrae primero.
Ventajas:
- Facilidad de implementación y uso.
- Acceso rápido al elemento superior (las operaciones push, pop, peek se realizan en O(1)).
- Muy adecuada para tareas relacionadas con el procesamiento en orden inverso, por ejemplo, recorrido de árboles, deshacer acciones, análisis sintáctico.
Desventajas:
- Acceso limitado: solo se puede trabajar con el elemento superior, sin acceso arbitrario.
- El tamaño de la pila puede estar limitado (por ejemplo, la pila de llamadas en un programa), lo que puede llevar a desbordamientos.
Ejemplo 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
}