Sobes.tech
Junior — Middle

¿Cómo se puede construir una estructura de datos pila usando una lista enlazada?

sobes.tech AI

Respuesta de la IA

La pila se puede implementar basada en una lista enlazada, donde cada elemento (nodo) contiene datos y una referencia al siguiente elemento. El elemento superior de la pila es la cabeza de la lista. Operaciones principales:

  • push — agregar un nuevo nodo al inicio de la lista;
  • pop — eliminar el nodo del inicio de la lista y devolver su valor;
  • peek — ver el valor de la cabeza sin eliminar.

Ejemplo en Kotlin:

class Node<T>(val data: T, var next: Node<T>? = null)

class Stack<T> {
    private var head: Node<T>? = null

    fun push(value: T) {
        val newNode = Node(value, head)
        head = newNode
    }

    fun pop(): T? {
        val value = head?.data
        head = head?.next
        return value
    }

    fun peek(): T? = head?.data

    fun isEmpty() = head == null
}

Este enfoque garantiza operaciones de pila en O(1) en tiempo y expansión dinámica sin necesidad de asignar un gran array.