Introdução

Visualizando uma pilha

Uma stack (pilha) é muito semelhante a uma queue (fila) e muitos dos conceitos que você aprendeu sobre uma queue podem ser aplicados a uma stack. Ao contrário da fila com lógica FIFO, uma pilha é diferente porque utiliza a lógica oposta, LIFO (Último a Entrar, Primeiro a Sair; Last In, First Out).

Um exemplo comum para pensar em uma stack (pilha) é uma pilha de pratos. Imagine 5 pratos empilhados um sobre o outro. Se você adicionar um sexto prato ao topo da pilha, sua pilha de pratos agora será uma pilha de 6. No entanto, e se você quisesse remover um prato? Bem, você não alcançaria o fundo da pilha e pegaria um prato; você tiraria um prato de cima.

Essa lógica Last In, First Out (LIFO) também se aplica a pilhas em Java.

Temos cinco itens, posicionados verticalmente, os quais são de baixo para cima, [0] [1] [2] [3], onde o item [4] está saindo com a fução Pop() e o item [5] está entrando no lugar do [4] com a função Push()