Sobes.tech
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
}