Sobes.tech
Junior — Middle

Como construir uma estrutura de dados pilha usando uma lista ligada?

sobes.tech IA

Resposta da IA

A pilha pode ser implementada com base numa lista ligada, onde cada elemento (nó) contém dados e uma referência ao próximo elemento. O elemento superior da pilha é a cabeça da lista. Operações principais:

  • push — adicionar um novo nó ao início da lista;
  • pop — remover o nó do início da lista e retornar o seu valor;
  • peek — visualizar o valor do cabeçalho sem removê-lo.

Exemplo em 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 método garante operações de pilha em O(1) tempo e expansão dinâmica sem necessidade de alocar um grande array.