O que é e como funciona a Estrutura de Dados Pilha \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 14 Horas 

 11 Min 

 42 Seg 

   Tempo restante da oferta: 14 11 42 

  [Assinar →](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26) 

   [                ](https://www.treinaweb.com.br)  Explorar  

 [ Quanto custa? ](#assinatura) [ FAQ ](https://www.treinaweb.com.br#faq) [Matricule-se](#assinatura) [ Entrar ](https://www.treinaweb.com.br/login) 

     [ Início ](https://www.treinaweb.com.br) [ Artigos ](https://www.treinaweb.com.br/blog) O que é e como funciona a Estrutura de Dados Pilha  [ Algoritmos ](https://www.treinaweb.com.br/blog/categoria/algoritmos) 

# O que é e como funciona a Estrutura de Dados Pilha

 Veja neste artigo o que é e como funciona a Estrutura de Dados Pilha.

 [ Ana Paula de Andrade ](https://www.treinaweb.com.br/blog/autor/ana-paula-andrade) 6 anos atrás

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/11/o_que_e_e_como_funciona_a_estrutura_de_dados_pilha.png)  

Uma estrutura de dados é uma maneira de armazenar e relacionar conjuntos de informações de forma organizada e, na maioria das vezes, sequencial. Estas estruturas são muito importantes quando precisamos armazenar um conjunto de dados para ser utilizado em um determinado software. Na computação, há diversos tipos de estruturas de dados que podem ser utilizadas para diferentes fins. Vimos no artigo anterior **[o que é e como funciona a Estrutura de Dados Lista](https://www.treinaweb.com.br/blog/o-que-e-e-como-funciona-a-estrutura-de-dados-lista/ "o que é e como funciona a Estrutura de Dados Lista")** e neste artigo veremos o que é e como funciona a Estrutura de Dados Pilha.

[  ![Python - Estrutura de dados - Parte 1](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/python.svg)   Curso Python - Estrutura de dados - Parte 1 Conhecer o curso ](https://www.treinaweb.com.br/curso/python-estrutura-de-dados-parte-1)

## O que é uma Pilha?

Pilhas são estruturas de dados que armazenam os elementos em um formato sequencial, empilhando um item acima do outro (imagine uma pilha de pratos, por exemplo). Estas estruturas permitem “empilhar” os itens que serão armazenados e “desempilhar” estes elementos da pilha quando precisarmos removê-lo. Sempre que um novo elemento é inserido (ou empilhado) damos a ele o nome de “topo”, pois é o primeiro elemento ao qual teremos acesso.

Segue um padrão conhecido como LIFO (Last In First Out), onde o último a entrar será o primeiro a sair. Imagine uma pilha de pratos, sempre que um prato é “empilhado” sob o outro, este último prato empilhado é o mais próximo (ou o topo da pilha) e, caso precisarmos remover um prato, é o prato do topo que será removido da estrutura.

Entre os exemplos de uso de uma pilha em um sistema, podemos citar a navegação entre páginas web ou até mesmo o mecanismo de desfazer/refazer dos editores de texto.

## Como funciona a Estrutura de Dados Pilha

Vamos imaginar o cenário onde diversas cores de carros serão adicionados em uma pilha.

Após colocarmos o primeiro elemento em nossa pilha, a mesma poderá ser representada da seguinte forma:

![inserindo um elemento em uma pilha ](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/11/inserindo-um-elemento-em-uma-pilha-1.png)

O primeiro elemento “Carro preto” foi adicionado à nossa pilha, representando seu primeiro elemento (Primeiro nó). À esta funcionalidade de inserção de elementos damos o nome de push.

Logo, estaremos inserindo em seguida o próximo elemento “Carro verde”. Este elemento será então inserido logo acima do nosso elemento anterior (carro preto), ficando da seguinte forma:

![inserindo um elemento em uma pilha](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/11/inserindo-um-elemento-em-uma-pilha-2.png)

Desta forma, ao finalizar a inserção de todos os carros, o resultado da nossa pilha será a seguinte:

![inserindo um elemento em uma pilha ](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/11/inserindo-um-elemento-em-uma-pilha-3.png)

É possível notar que cada carro foi “empilhado” sob o outro e o último carro inserido é o “topo”. Esta é, basicamente, a funcionalidade de uma pilha.

[  ![Java - Estrutura de dados - Parte 1](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/java.svg)   Curso Java - Estrutura de dados - Parte 1 Conhecer o curso ](https://www.treinaweb.com.br/curso/java-estrutura-de-dados-parte-1)

## E se quisermos remover elementos?

Como vimos acima, as pilhas seguem o padrão chamado LIFO (Last In First Out), onde o último elemento a entrar será o primeiro elemento a sair. Desta forma, o nosso último elemento inserido foi o “Carro azul”, este será o primeiro elemento a ser retirado.

![inserindo um elemento em uma pilha](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/11/inserindo-um-elemento-em-uma-pilha-4.png)

Após a retirada do nosso “Carro azul”, a pilha ficará da seguinte forma:

![inserindo um elemento em uma pilha](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/11/inserindo-um-elemento-em-uma-pilha-5.png)

O último nó da pilha agora será o “Carro amarelo”, e caso o mesmo tenha que ser retirado, o último da pilha será o “Carro rosa” e assim sucessivamente. Desta forma, o primeiro elemento inserido (Carro preto), também será o último a deixar a pilha de carros. À esta funcionalidade de remoção de elementos damos o nome de pop.

- [ #Estrutura de dados ](https://www.treinaweb.com.br/blog/tag/estrutura-de-dados)
- [ #pilha ](https://www.treinaweb.com.br/blog/tag/pilha)

Autor

 ![Ana Paula de Andrade](//secure.gravatar.com/avatar/76297b487187c82ae476e823018dbfc0?d=mm)

## Ana Paula de Andrade

 Graduanda em Sistemas de Informação pelo Instituto Federal da Bahia. É responsável pelo atendimento ao cliente, gerenciamento de redes sociais e revisão de cursos, além da redação de artigos para o blog da TreinaWeb. 

 [Todos os artigos](https://www.treinaweb.com.br/blog/autor/ana-paula-andrade)  

## Continue estudando

 Transforme leitura em prática com os cursos e formações da TreinaWeb.

 [Ver cursos](https://www.treinaweb.com.br/cursos)   

  Continue lendo

## Artigos relacionados

- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/11/o-que-e-e-como-funciona-a-estrutura-de-dados-fila-400x280.png)  [ Algoritmos ](https://www.treinaweb.com.br/blog/categoria/algoritmos) 

     6 anos atrás

    ##  [ O que é e como funciona a Estrutura de Dados Fila ](https://www.treinaweb.com.br/blog/o-que-e-e-como-funciona-a-estrutura-de-dados-fila) 

     Veja neste artigo o que é e como funciona a Estrutura de Dados Fila.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/09/o_que_e_e_como_funciona_a_estrutura_de_dados_lista-400x280.png)  [ Algoritmos ](https://www.treinaweb.com.br/blog/categoria/algoritmos) 

     6 anos atrás

    ##  [ O que é e como funciona a Estrutura de Dados Lista ](https://www.treinaweb.com.br/blog/o-que-e-e-como-funciona-a-estrutura-de-dados-lista) 

     Veja neste artigo o que é e como funciona a Estrutura de Dados Lista.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/11/ARTIGO-DART-400x280.jpg)  [ Dart ](https://www.treinaweb.com.br/blog/categoria/dart) 

     4 anos atrás

    ##  [ Guia da linguagem dart ](https://www.treinaweb.com.br/blog/guia-da-linguagem-dart) 

     Nesse guia da linguagem Dart você aprenderá o necessário para criar os seus primeiros softwares com a linguagem de programação Dart.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/07/o-que-preciso-conhecer-antes-de-iniciar-os-estudos-em-uma-linguagem-de-programacao-400x280.png)  [ Carreira ](https://www.treinaweb.com.br/blog/categoria/carreira) 

     4 anos atrás

    ##  [ O que preciso conhecer antes de iniciar estudos em uma linguagem de programação? ](https://www.treinaweb.com.br/blog/o-que-preciso-conhecer-antes-de-iniciar-estudos-em-uma-linguagem-de-programacao) 

     Essa é uma pergunta muito comum para quem deseja iniciar na área de programação. Por mais que desejamos já começar com uma linguagem e ver tudo acontecendo na tela, é necessário construir uma base antes. Por isso, existem alguns passos importantes antes mesmo de escolher uma linguagem de programação para estudar e é isso que veremos neste artigo.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/05/IDE-PYTHON-400x280.png)  [ Python ](https://www.treinaweb.com.br/blog/categoria/python) 

     6 anos atrás

    ##  [ Orientação a objetos em Python ](https://www.treinaweb.com.br/blog/orientacao-a-objetos-em-python) 

     Veja neste artigo os principais conceitos do paradigma orientação a objetos e como eles se aplicam no Python.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/02/13190452/php-cloud-400x280.jpg)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     7 anos atrás

    ##  [ Aplicação Serverless desenvolvida em PHP usando AWS Lambda ](https://www.treinaweb.com.br/blog/aplicacao-serverless-desenvolvida-em-php-usando-aws-lambda) 

     Veja como fazer o deploy de uma aplicação PHP Serverless no AWS Lambda usando o Bref.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/08/22125738/capa-impacto-software-organizacoes-modernas-400x280.png)  [ Tecnologia ](https://www.treinaweb.com.br/blog/categoria/tecnologia) 

     7 anos atrás

    ##  [ O impacto do software nas organizações modernas ](https://www.treinaweb.com.br/blog/o-impacto-do-software-nas-organizacoes-modernas) 

     Hoje, software tem o poder de definir o destino de organizações inteiras, ressaltando a importância de profissionais na área de desenvolvimento de software.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/04/08160716/capa-currying-400x280.jpg)  [ Desenvolvimento ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento) 

     8 anos atrás

    ##  [ Conceitos de linguagens funcionais: uma breve introdução aos monads ](https://www.treinaweb.com.br/blog/conceitos-de-linguagens-funcionais-uma-breve-introducao-aos-monads) 

     Neste post, dando continuidade à série sobre programação funcional, trataremos de um tema muito pertinente: os monads e suas definições essenciais.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/05/capa-DDoS-400x280.png)  [ Segurança da Informação ](https://www.treinaweb.com.br/blog/categoria/seguranca-da-informacao) 

     7 anos atrás

    ##  [ Termos comuns de segurança: DDoS ](https://www.treinaweb.com.br/blog/termos-comuns-de-seguranca-ddos) 

     Continuando com nossa série de artigos sobre os termos comuns de segurança, vamos abordar hoje o DDoS – sigla para Distributed Denial of Service.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/10/o-que-e-e-como-comecar-com-golang-400x280.jpg)  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) 

     4 anos atrás

    ##  [ Orientação a objetos na linguagem Go ](https://www.treinaweb.com.br/blog/orientacao-a-objetos-na-linguagem-go) 

     Neste artigo iremos aprender como podemos utilizar a orientação a objetos na linguagem Go, usando structs e pointer receivers.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/07/30152657/SQL-ALCHEMY-400x280.png)  [ Python ](https://www.treinaweb.com.br/blog/categoria/python) 

     7 anos atrás

    ##  [ O que é o SQLAlchemy? ](https://www.treinaweb.com.br/blog/o-que-e-o-sqlalchemy) 

     Neste artigo veremos o que é e como funciona o SQLAlchemy.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2018/11/25224114/REDHAT-OPENSHIFT-400x280.png)  [ DevOps ](https://www.treinaweb.com.br/blog/categoria/devops) 

     8 anos atrás

    ##  [ O que é o OpenShift? ](https://www.treinaweb.com.br/blog/o-que-e-o-openshift) 

     Conheça mais sobre o OpenShift e como ele funciona.

     Ler artigo

## Um ano de acesso total para você viver de programação.

 Todos os cursos e formações da TreinaWeb numa única assinatura, com professores que atuam no mercado, suporte direto e certificados. Do primeiro `console.log` ao mercado de trabalho.

- **1 ano** de acesso a **todos os cursos**
- Cursos novos **toda semana**
- Suporte **direto com professores**
- Plano de carreira **personalizado**
- **Certificados digitais** inclusos
- **Aplicativos** para Android e iOS, com **acesso offline**

    **Garantia incondicional de satisfação** 

 Teste por 7 dias e, se não fizer sentido para você, devolvemos seu dinheiro.

### Acesso completo a todos os cursos e dezenas de Formações.

 12 meses 

  Economize R$ 840,00  54% OFF 

 de 12x R$ 129,00 por apenas

 12x  R$ 59,00

 sem juros no cartão de crédito ou R$ 599,00 à vista

  Oferta termina em  **14h 11min 42s**

- Acesso imediato e ilimitado durante 1 ano.
- Plano de carreira personalizado.
- Suporte direto com professores.
- E muito mais!

 [Matricule-se agora](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26)

     [                ](https://www.treinaweb.com.br)

 Escola online de programação, tecnologia e IA.

- [  ](https://www.facebook.com/TreinaWeb/)
- [  ](https://www.instagram.com/treinaweb/)
- [  ](https://www.youtube.com/user/TreinaWeb)
- [  ](https://twitter.com/treinaweb)
- [  ](https://www.linkedin.com/company/treinaweb)
- [  ](https://github.com/treinaweb)

## Inscreva-se em nossa newsletter

Receba lançamentos, promoções e novidades.

   Seu nome     Seu WhatsApp     Seu melhor e-mail   Inscrever-se 

## Cursos

- [ Base para Devs ](https://www.treinaweb.com.br/categoria/base-para-devs)
- [ Front-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-front-end)
- [ Back-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-back-end)
- [ Mobile ](https://www.treinaweb.com.br/categoria/desenvolvimento-mobile)
- [ Bancos de Dados ](https://www.treinaweb.com.br/categoria/bancos-de-dados)
- [ Cloud ](https://www.treinaweb.com.br/categoria/cloud-computing)
- [ IA ](https://www.treinaweb.com.br/categoria/ia)
- [ E mais ](https://www.treinaweb.com.br/categoria/e-mais)
- [ Ver todos os cursos ](https://www.treinaweb.com.br/cursos)

## Conteúdo

- [ Formações ](https://www.treinaweb.com.br/formacoes)
- [ Projetos práticos ](https://www.treinaweb.com.br/projetos-praticos)
- [ Direto ao ponto ](https://www.treinaweb.com.br/direto-ao-ponto)
- [ Planos ](https://www.treinaweb.com.br#assinatura)
- [ Depoimentos ](https://www.treinaweb.com.br#depoimentos)
- [ Comunidade ](https://www.treinaweb.com.br#comunidade)
- [ Corpo docente ](https://www.treinaweb.com.br#docente)

## A empresa

- [ Sobre a TreinaWeb ](https://www.treinaweb.com.br#sobre)
- [ Perguntas frequentes ](https://www.treinaweb.com.br#faq)
- [ Vantagens de estudar na TreinaWeb ](https://www.treinaweb.com.br/vantagens-de-estudar-na-treinaweb)
- [ Cursos para empresas ](https://www.treinaweb.com.br/empresas)
- [ Sugira um novo curso ](https://www.treinaweb.com.br/sugerir-curso)
- [ Trabalhe conosco ](https://www.treinaweb.com.br/trabalhe-conosco)
- [ Artigos ](https://www.treinaweb.com.br/blog)
- [ Desenvolvedores e agentes ](https://www.treinaweb.com.br/developers)
- [ Contato ](https://www.treinaweb.com.br/contato)
- [ Política de privacidade ](https://www.treinaweb.com.br/politica-de-privacidade)
- [ Termos de uso ](https://www.treinaweb.com.br/termos-de-uso)

## Baixe nosso aplicativo

 [   Disponível na **App Store**  ](https://apps.apple.com/us/app/treinaweb/id1322729447) [   Disponível no **Google Play**  ](https://play.google.com/store/apps/details?id=br.com.treinaweb.mobile) 

  Av. Paulista, 1765, Conj 71 e 72 · Bela Vista · São Paulo · SP · 01311-200   © 2004 – 2026 TreinaWeb Tecnologia LTDA · CNPJ 06.156.637/0001-58
