# Stack

Uma stack (ou pilha) é uma estrutura de dados com a propriedade **FILO** (first in, last out). Ou seja, um item pode ser adicionado a uma stack, mas só pode ser removido após todos os itens acrescentados depois dele terem sido removidos.

Imagine uma pilha de livros, você pode acrescentar mais um livro a esta pilha a qualquer momento. Se você for remover um livro, você removerá do topo. E se você quiser saber qual o livro que está no topo, você só precisa olhar. Uma stack funciona dessa exata forma, possuindo 3 operações:

1. Insert: Insere um item na stack
2. Peek: Olha o item no topo da stack
3. Remove (ou Pop): Remove o item que está no topo

<figure><img src="https://3099726359-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPoUhR6ITF2wdty5CdTAc%2Fuploads%2FPKKlkLKOoWCf68LOJIF5%2Fstack_intro.004.png?alt=media&#x26;token=4454df05-3532-4374-a57b-8c16f0d62ba9" alt=""><figcaption></figcaption></figure>
