# Stack 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_. ![Stack](https://upload.wikimedia.org/wikipedia/commons/b/b4/Lifo_stack.png) ## Referências - [Wikipedia](https://en.wikipedia.org/wiki/Stack_(abstract_data_type)) - [YouTube](https://www.youtube.com/watch?v=wjI1WNcIntg&list=PLLXdhg_r2hKA7DPDsunoDZ-Z769jWn4R8&index=3&)