Estrutura de Dados: O que é uma pilha?

Nesse texto eu pretendo explicar como funciona uma pilha na programação. Pilha é um dos conceitos mais básicos, porém mais importantes dentro da matéria de estrutura de dados. É algo que está no dia a dia de todo desenvolvedor, por mais que ele não con…


This content originally appeared on DEV Community 👩‍💻👨‍💻 and was authored by Cristian Magalhães

Nesse texto eu pretendo explicar como funciona uma pilha na programação. Pilha é um dos conceitos mais básicos, porém mais importantes dentro da matéria de estrutura de dados. É algo que está no dia a dia de todo desenvolvedor, por mais que ele não conheça esse conceito.

O que é uma pilha?

Quando falamos de pilha podemos pensar em uma pilha de livros, pilha de papel, jogos ou qualquer coisa, ou seja, é quando colocamos vários itens um em cima do outro. Isso é uma pilha. Bem simples né? No mundo real, sim, mas aqui na programação ela tem uma regra.

LIFO - Last in First out

Essa é a regra que a pilha segue. Diferente de uma pilha de livros onde eu posso pegar qualquer livro independente da sua posição na pilha, na estrutura de dados funciona de uma forma diferente. Nós temos que respeitar a regra chama LIFO (Last in First out) que em português fica "ultimo a entrar, primeiro a sair".

Vamos exemplificar isso. Vamos supor que eu tenho a seguinte pilha com 4 livros na seguinte ordem de baixo para cima. Livro-2, Livro-4, Livro-3, Livro-1. Logo o Livro-2 está lá embaixo e o Livro-1 é o de cima. Por algum motivo eu gostaria de ler o Livro-4 que é o penultimo na pilha. Para pega-lo seguindo o conceito de LIFO eu devo, primeiro, retirar o Livro-1 e em seguida o Livro-3 e só assim teria acesso ao Livro-4. Ou seja o Livro-1 foi o último a entra na pilha, porém ele foi o primeiro a sair, pois estava em cima de todos os outros.

E dessa mesma forma funciona nas linguagens de programação, porém ao invés de livro nós lidamos com funções. Um bom exemplo disso, e vai conforme os meus posts, é a callstack do JavaScript (irei falar sobre ela mais a fundo em um post futuro).

Vou dar um exemplo, leia o código abaixo:

Image description

É um código bem simples que tenta simular uma operação de buscar um usuário. Toda a execução do código começa pela função main ali no fim do arquivo. Quando eu chamo essa função, o JavaScript adiciona ela na sua callstack e ela só será removida após o fim de sua execução. Então seguindo o funcionamento do código quando eu chamo a função `buscarPessoa a mesma também é adicionada a callstack, logo eu tenho a seguindo pilha:

Image description

E quando a execução do buscarPessoa é encerrada eu tenho novamente apenas a função main na minha callstack. É importante lembrar mais uma vez, a função só sai da callstack após o fim da sua execução. Como a função buscarPessoa retornou, o seu resultado ela é retirada da callstack e a nossa função main fica sozinha lá novamente.

Image description

Porém, sua execução ainda não chegou ao fim ela tem mais uma instrução a ser seguida, chamar a função mostrarDetalhesDaPessoa logo quando ela é chamada a callstack fica desta forma:

Image description

E após o fim da sua execução a função main fica sozinha na callstack. E como a mesma não tem mais nenhuma instrução a ser seguida, ela sai da callstack e seu programa chega ao fim.

Em breve pretendo escreve um post sobre callstack. E irei explicar mais sobre o termo.

Muito obrigado por ler 🙃

LinkedIn
Twitter


This content originally appeared on DEV Community 👩‍💻👨‍💻 and was authored by Cristian Magalhães


Print Share Comment Cite Upload Translate Updates
APA

Cristian Magalhães | Sciencx (2023-01-02T14:41:40+00:00) Estrutura de Dados: O que é uma pilha?. Retrieved from https://www.scien.cx/2023/01/02/estrutura-de-dados-o-que-e-uma-pilha/

MLA
" » Estrutura de Dados: O que é uma pilha?." Cristian Magalhães | Sciencx - Monday January 2, 2023, https://www.scien.cx/2023/01/02/estrutura-de-dados-o-que-e-uma-pilha/
HARVARD
Cristian Magalhães | Sciencx Monday January 2, 2023 » Estrutura de Dados: O que é uma pilha?., viewed ,<https://www.scien.cx/2023/01/02/estrutura-de-dados-o-que-e-uma-pilha/>
VANCOUVER
Cristian Magalhães | Sciencx - » Estrutura de Dados: O que é uma pilha?. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2023/01/02/estrutura-de-dados-o-que-e-uma-pilha/
CHICAGO
" » Estrutura de Dados: O que é uma pilha?." Cristian Magalhães | Sciencx - Accessed . https://www.scien.cx/2023/01/02/estrutura-de-dados-o-que-e-uma-pilha/
IEEE
" » Estrutura de Dados: O que é uma pilha?." Cristian Magalhães | Sciencx [Online]. Available: https://www.scien.cx/2023/01/02/estrutura-de-dados-o-que-e-uma-pilha/. [Accessed: ]
rf:citation
» Estrutura de Dados: O que é uma pilha? | Cristian Magalhães | Sciencx | https://www.scien.cx/2023/01/02/estrutura-de-dados-o-que-e-uma-pilha/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.