loader image

Estrutura de dados é uma forma organizada de armazenar informações no computador, para que elas possam ser acessadas, modificadas e utilizadas de maneira mais eficiente. Ela define como os dados se relacionam entre si e como o programa pode trabalhar com esses dados para resolver problemas de forma mais rápida e organizada. Dentro dessa matéria de Estrutura de dados existe diversos conhecimentos importantes e um deles é a Pilha, vamos abordar sobre esse assunto no decorrer do artigo.

Neste artigo você vai aprender:

O que é uma pilha

  • Conceito de LIFO
  • Principais operações
  • Onde pilhas são usadas na prática
  • Implementação em Java (duas formas: manual e com Stack)

Vantagens, desvantagens e quando usar.

O que é uma Pilha?

Uma pilha é uma estrutura de dados linear que segue o princípio:

LIFO – Last In, First Out
O último a entrar é o primeiro a sair.

Visualmente, pense em uma pilha de pratos:

Estrutura de dados - Pilha

Quando você coloca um prato novo, ele vai para o topo.
Quando você retira um prato, sempre sai o que está no topo.

Como funciona uma Pilha em Estrutura de Dados (parte Teórica)

Uma pilha permite apenas interações com o topo:

Descrição das Operações:
push() Adiciona um elemento no topo
pop() Remove o elemento do topo
peek() Retorna o elemento do topo sem remover
isEmpty() Verifica se a pilha está vazia
size() Retorna o tamanho

Tudo é feito sempre no topo e não existe acesso direto ao meio da pilha.

Onde As Pilhas São Aplicadas na Vida Real de um Programador?

As pilhas estão em muitos sistemas:

Quando você navega pela internet, cada página visitada é empilhada.

Entrou em uma página → push()

Clicou em “voltar” → pop()

O navegador mantém duas pilhas: histórico e futuro.

——————————————————————————————————————–

⌨️ Ctrl+Z / Ctrl+Y (Undo e Redo)

Em editores como VS Code, Word, Photoshop, Figma…

Cada ação que você faz vai para uma pilha de ações desfeitas.
A pilha permite desfazer e refazer na ordem exata.

——————————————————————————————————————–

🧬 Pilha de Execução (Call Stack)

Toda linguagem de programação usa pilha para controlar chamadas de funções.

Função A chama B → empilha B

B chama C → empilha C

C termina → desempilha

Depois volta para B, e assim por diante

É assim que a JVM e outras linguagens controlam recursão.

——————————————————————————————————————–

🧮 Avaliação de Expressões Matemáticas

Compiladores usam pilhas para interpretar expressões.

Exemplo:
(a + b) * (c – d)

Parênteses, operadores e operandos são empilhados e processados na ordem correta.

——————————————————————————————————————–

📦 Navegação em Aplicativos (Fluxo de Telas)

Apps como os feitos no Android usam pilhas para controlar telas:

Abriu nova tela → push()

Apertou “voltar” → pop()

——————————————————————————————————————–

🎲 Sistemas de Jogos (Histórico e Ações)

Jogos usam pilhas para:

  • desfazer movimentos
  • pilha de estados
  • lógica de turnos

Criando uma Pilha Manual em Java

Essa implementação reforça bem o funcionamento interno.

Testando a pilha:

Estrutura de dados: Testando a classe Pilha manualmente na linguagem Java.

Usando a Classe Stack do Java para criar uma Pilha

Além da implementação manual, o Java já oferece uma classe pronta:

Estrutura de dados: Exemplo de Pilha com a classe Stack do Java.

Simples, direto e eficiente para a maioria dos casos.

Vantagens e Desvantagens de usar uma Pilha em Estrutura de Dados

✔️ Vantagens

  • Estrutura muito simples
  • Operações rápidas (O(1))
  • Ótima para controle de fluxo e reversões
  • Muito usada na JVM

❌ Desvantagens

  • Acesso limitado (somente topo)
  • Não é adequada quando você precisa acessar posições intermediárias

Conclusão

A pilha (Stack) é uma das estruturas de dados mais importantes para quem está começando a programar. Simples, eficiente e presente em inúmeros sistemas, ela reforça conceitos fundamentais como acesso restrito, ordem lógica e fluxo de execução.

Quer aprender a linguagem Java do absoluto zero mesmo que você nunca tenha programado na sua vida? Clique aqui e aprenda Java do Zero:

Damos valor à sua privacidade

Nós e os nossos parceiros armazenamos ou acedemos a informações dos dispositivos, tais como cookies, e processamos dados pessoais, tais como identificadores exclusivos e informações padrão enviadas pelos dispositivos, para as finalidades descritas abaixo. Poderá clicar para consentir o processamento por nossa parte e pela parte dos nossos parceiros para tais finalidades. Em alternativa, poderá clicar para recusar o consentimento, ou aceder a informações mais pormenorizadas e alterar as suas preferências antes de dar consentimento. As suas preferências serão aplicadas apenas a este website.

Cookies estritamente necessários

Estes cookies são necessários para que o website funcione e não podem ser desligados nos nossos sistemas. Normalmente, eles só são configurados em resposta a ações levadas a cabo por si e que correspondem a uma solicitação de serviços, tais como definir as suas preferências de privacidade, iniciar sessão ou preencher formulários. Pode configurar o seu navegador para bloquear ou alertá-lo(a) sobre esses cookies, mas algumas partes do website não funcionarão. Estes cookies não armazenam qualquer informação pessoal identificável.

Cookies de desempenho

Estes cookies permitem-nos contar visitas e fontes de tráfego, para que possamos medir e melhorar o desempenho do nosso website. Eles ajudam-nos a saber quais são as páginas mais e menos populares e a ver como os visitantes se movimentam pelo website. Todas as informações recolhidas por estes cookies são agregadas e, por conseguinte, anónimas. Se não permitir estes cookies, não saberemos quando visitou o nosso site.

Cookies de funcionalidade

Estes cookies permitem que o site forneça uma funcionalidade e personalização melhoradas. Podem ser estabelecidos por nós ou por fornecedores externos cujos serviços adicionámos às nossas páginas. Se não permitir estes cookies algumas destas funcionalidades, ou mesmo todas, podem não atuar corretamente.

Cookies de publicidade

Estes cookies podem ser estabelecidos através do nosso site pelos nossos parceiros de publicidade. Podem ser usados por essas empresas para construir um perfil sobre os seus interesses e mostrar-lhe anúncios relevantes em outros websites. Eles não armazenam diretamente informações pessoais, mas são baseados na identificação exclusiva do seu navegador e dispositivo de internet. Se não permitir estes cookies, terá menos publicidade direcionada.

Visite as nossas páginas de Políticas de privacidade e Termos e condições.

Importante: Este site faz uso de cookies que podem conter informações de rastreamento sobre os visitantes.