Ir ao conteúdo

Pilha: Estrutura de Dados

Uma estrutura de dados do tipo Pilha, em inglês Stack, nada mais é do que uma Lista de elementos empilhados. Ou seja, cada novo elemento que entra vai ficando empilhado, vai ficando no topo da lista.

Um recurso muito comum utilizado para representar o conceito de Pilha, é fazer você pensar em uma “Pilha de Pratos”.  Você coloca o primeiro prato, depois o segundo em cima do primeiro, depois o terceiro em cima do segundo e assim, sucessivamente. 

Exemplo de Entrada de elementos em uma Pilha
Exemplo de Entrada de elementos em uma Pilha

Da mesma forma, quando você for remover os pratos, você pega do topo. Neste exemplo, removeria primeiro o terceiro prato (último), depois o segundo e por fim o primeiro. 

Exemplo de Saída de elementos em uma Pilha

Por ter este comportamento, para diferenciar, por exemplo, uma Pilha de uma Fila (outra estrutura de dados), pensamos sobre essas questões de entrada e saída de elemento. A Pilha é caracterizada como LIFO (Last In First Out), o mesmo que: O último elemento a entrar é o primeiro a sair. Já a Fila é tido como FIFO(First In First Out), o primeiro elemento a entrar é o primeiro a sair.

O que são Listas?

Tudo bem até agora, você já sabe que Pilhas e Filas são tipos de Listas. Agora, conceitualmente, você compreende o que é uma Lista? Na computação, temos valores que são armazenados em pontos da memória do computador de modo que possamos executar operações de leitura e escrita. Porém, em algumas situações, precisam organizar uma coleção com estes valores, de modo que possamos representar de forma abstrata este conjunto como algo, por exemplo, uma lista de nomes, lista de números, lista de endereço, etc…. 

A esta coleção, damos o nome de estrutura de dados, uma vez que conseguimos referenciar a ligação entre os elementos de acordo com a as suas posições ou de acordo com os seus valores. Podemos executar operações, como inserção, alteração, remoção e ordenação dos seus elementos. Cada elemento chamamos de (em inglês node) e com isso, conseguimos fazer vários tipos de ligações entre os nodes.

Onde utilizamos a estrutura de dados do tipo Pilha?

Você vai encontrar a utilização de Pilhas em várias aplicações na computação e sobretudo no desenvolvimento de algoritmos na programação. Veja alguns exemplos de uso de Pilhas:

  • Gerenciamento de Memória em Tempo de Compilação
  • Implementação de diversos algoritmos, como Grahan scan e SMAWK
  • Operações como desfazer e refazer em aplicações
  • Controle de navegação em browsers
  • Endereçamento de instruções em microprocessadores
  • Análise de expressões aritméticas

Existem outros tipos de estrutura de dados, como  Listas ligadas, Árvores, Hash Tables e Grafos. Vale muito apena você dar uma olhada neste artigo e compreender bem estes conceitos.

Espero que tenha gostado deste artigo. Se gostou, deixe o seu comentário e compartilhe com o maior número de pessoas que você acredita que vai se beneficiar com este conteúdo. Não seja egoísta, ok? Até o próximo artigo!

Confiança Sempre!!!

Fontes:

  • https://www.ime.usp.br/~pf/algoritmos/aulas/pilha.html
  • FORBELLONE, André L. V.; EBERSPÄCHER, Henri F. Lógica de programação: a construção de algoritmos e estruturas de dados. 3. ed. São Paulo: Prentice Hall, 2005.
  • OLIVEIRA, Pietro M. de; PEREIRA, Rogério de L. Estrutura de dados I. Maringá: Unicesumar, 2019.

Olá! Sou Walmir, engenheiro de software com MBA em Engenharia de Software e o cérebro por trás do GrowthCode e autor do livro "Além do Código". Se você acha que programação é apenas sobre escrever código, prepare-se para expandir seus horizontes. Aqui, nós vamos além do código e exploramos as interseções fascinantes entre tecnologia, negócios, artes e filosofia. Você está em busca de crescimento na carreira? Quer se destacar em um mercado competitivo? Almeja uma vida mais rica em conhecimento e realização? Então você chegou ao lugar certo. No GrowthCode, oferecemos insights profundos, estratégias comprovadas e um toque de sabedoria filosófica para catalisar seu crescimento pessoal e profissional.

Publicado emAlgoritmosProgramação

Seja o primeiro a comentar

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *