Que nada, cara uma vez depois de anos programando eu estava fazendo uma entrevista e o cara me pergunta qual a diferença entre fila e pilha? Minha cabeça deu um nó porque eu estava acostumado na época com pilha de memória porque estava fazendo uns trabalhos ligados a hardware, nem preciso dizer o que aconteceu né kkkkkkk Não tem como estar preparado para tudo o tempo todo.
- Pilha de Memória (Call Stack) A pilha de memória, também conhecida como call stack, é uma estrutura de dados utilizada pelo sistema para gerenciar a execução de funções e sub-rotinas. Quando uma função é chamada, ela é adicionada ao topo da pilha de memória, juntamente com as variáveis locais e o estado do programa naquele momento. Quando a função termina, ela é removida da pilha, e o controle é retornado para o ponto de chamada anterior.
Características:
LIFO (Last In, First Out): O último elemento que entra é o primeiro a sair. Gerencia a execução de funções: Guarda o endereço de retorno, variáveis locais, e outras informações de controle. É automática: Controlada pelo sistema durante a execução do programa.
- Pilha em Programação (Stack) Em programação, uma pilha é uma estrutura de dados abstrata que segue o princípio LIFO (Last In, First Out). Elementos são adicionados (empilhados) e removidos (desempilhados) da mesma extremidade, chamada de topo da pilha. Isso significa que o último elemento inserido é o primeiro a ser removido.
Usos:
Armazenamento temporário: Ideal para armazenar dados temporários que são acessados de maneira reversa. Implementação de algoritmos: Usada em algoritmos de pesquisa em profundidade (DFS), avaliação de expressões aritméticas, entre outros.
- Fila em Programação (Queue) Uma fila é outra estrutura de dados abstrata, mas que segue o princípio FIFO (First In, First Out). Elementos são adicionados no final da fila e removidos do início. Isso significa que o primeiro elemento inserido é o primeiro a ser removido.
Usos:
Gerenciamento de tarefas: Ideal para gerenciar processos ou tarefas em ordem de chegada. Comunicação entre processos: Usada em sistemas de comunicação, onde mensagens são enviadas e recebidas na ordem em que foram transmitidas. Essas estruturas são fundamentais para a organização e o gerenciamento de dados e tarefas em diversos contextos de programação. Enquanto a pilha de memória é uma parte essencial do funcionamento do sistema, as pilhas e filas são ferramentas usadas pelos desenvolvedores para resolver problemas específicos de forma eficiente.