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.
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.
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 nó (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.
Seja o primeiro a comentar