Na ciência da computação, um stack é uma estrutura de dados abstrata que serve como uma coleção de elementos com duas operações principais:
- push, pela qual adiciona um elemento à coleção, e
- pop, pela qual remove o último elemento adicionado.
A ordem em que os elementos saem de um stack dá origem ao seu nome alternativo, LIFO (last in, first out). Adicionalmente, uma espiar a operação pode dar acesso ao topo sem modificar o stack. O nome "stack" para este tipo de estrutura vem da analogia de um conjunto de itens físicos empilhados uns sobre os outros, o que facilita retirar um item do topo da pilha, enquanto para chegar a um item mais profundo na pilha pode exigir a retirada de vários outros itens primeiro.
Representação simples de um tempo de execução de pilha com operações push e pop.