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.