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 e neste artigo veremos o que é e como funciona a Estrutura de Dados Pilha.
Curso Python - Estrutura de dados - Parte 1
Conhecer o cursoO 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:
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:
Desta forma, ao finalizar a inserção de todos os carros, o resultado da nossa pilha será a seguinte:
É 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.
Curso Java - Estrutura de dados - Parte 1
Conhecer o cursoE 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.
Após a retirada do nosso “Carro azul”, a pilha ficará da seguinte forma:
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.