23/03/2023

O que é Pilha e Fila – Aplicabilidade Prática

Por Marcelo Lopes

Pilha e fila são estruturas de dados comuns na ciência da computação e são usadas para organizar elementos em um programa.

Uma pilha é uma estrutura de dados em que os elementos são organizados em uma ordem específica, chamada de ordem LIFO (Last In, First Out), o que significa que o último elemento adicionado à pilha é o primeiro a ser removido. As operações básicas em uma pilha são empilhar (push), que adiciona um elemento ao topo da pilha, e desempilhar (pop), que remove o elemento mais recente adicionado à pilha.

Por outro lado, uma fila é uma estrutura de dados em que os elementos são organizados em uma ordem específica, chamada de ordem FIFO (First In, First Out), o que significa que o primeiro elemento adicionado à fila é o primeiro a ser removido. As operações básicas em uma fila são enfileirar (enqueue), que adiciona um elemento ao final da fila, e desenfileirar (dequeue), que remove o elemento mais antigo adicionado à fila.

Em resumo, a principal diferença entre pilha e fila é a ordem em que os elementos são adicionados e removidos: LIFO para pilha e FIFO para fila.

Aplicações Práticas de Pilha

  • Gerenciamento de chamadas de funções em programas;
  • Cálculos de expressões matemáticas, como a avaliação de uma expressão em notação polonesa reversa (RPN);
  • Navegação na internet com o botão de voltar (back) do navegador, que é implementado como uma pilha de URLs visitadas;
  • Verificação de equilíbrio de parênteses em expressões matemáticas e linguagens de programação;
  • Implementação de algoritmos de busca em profundidade em grafos.

Aplicações Prática de Fila

  • Gerenciamento de tarefas em um sistema operacional, como agendamento de processos;
  • Gerenciamento de requisições de um servidor web, como filas de requisições a serem processadas;
  • Implementação de algoritmos de busca em largura em grafos;
  • Controle de acesso a recursos compartilhados, como um banco de dados ou uma impressora;
  • Gerenciamento de pacotes em sistemas de comunicação, como a transmissão de dados em redes de computadores.
  • Essas são apenas algumas aplicações comuns de pilhas e filas, mas existem muitas outras possibilidades, dependendo do contexto e da finalidade do programa ou sistema em questão.