Pilha x Fila Conheça as Diferenças e Como Usar Cada Estrutura
Автор: Celso Kitamura | Mentor de Programadores
Загружено: 2024-06-04
Просмотров: 2124
Описание:
Antes de entrarmos em detalhes sobre as diferenças entre pilha e fila, é importante entender o que cada uma dessas estruturas representa.
Pilha (Stack)
Uma pilha é uma estrutura de dados que segue o princípio LIFO (Last In, First Out), ou seja, o último elemento a entrar é o primeiro a sair.
Imagine uma pilha de pratos: você coloca um prato no topo e, quando precisa de um prato, pega o do topo.
Na programação, a operação de inserir um elemento na pilha é chamada de "push" e a de remover um elemento é chamada de "pop".
Fila (Queue)
Já a fila segue o princípio FIFO (First In, First Out), onde o primeiro elemento a entrar é o primeiro a sair.
Pense em uma fila de pessoas no caixa do supermercado: a primeira pessoa a entrar na fila é a primeira a ser atendida.
Na programação, a operação de adicionar um elemento na fila é chamada de "enqueue" e a de remover um elemento é chamada de "dequeue".
Diferenças entre Pilha e Fila
Agora que você já sabe o que são pilha e fila, vamos explorar as principais diferenças entre elas:
Ordem de Operações
• Pilha: LIFO (Last In, First Out)
• Fila: FIFO (First In, First Out)
Uso Comum
• Pilha: Usada para problemas onde a ordem de saída precisa ser inversa à de entrada. Exemplos incluem algoritmos de backtracking, operações de desfazer (undo) em editores de texto, e a pilha de chamadas de funções (call stack) em linguagens de programação.
• Fila: Usada em cenários onde a ordem de processamento deve seguir a ordem de chegada. Exemplos incluem sistemas de impressão, filas de atendimento em serviços, e gerenciamento de threads em sistemas operacionais.
Operações Básicas
• Pilha: Push (inserir), Pop (remover)
• Fila: Enqueue (inserir), Dequeue (remover)
Implementação de Pilha e Fila
Implementar pilha e fila é um exercício fundamental para quem está começando na programação.
Vamos ver como podemos fazer isso em JavaScript.
Pilha em JavaScript
class Pilha {
constructor() {
this.itens = [];
}
push(item) {
this.itens.push(item);
}
pop() {
if (!this.isEmpty()) {
return this.itens.pop();
} else {
throw new Error("pop from empty stack");
}
}
isEmpty() {
return this.itens.length === 0;
}
peek() {
if (!this.isEmpty()) {
return this.itens[this.itens.length - 1];
} else {
throw new Error("peek from empty stack");
}
}
}
// Exemplo de uso:
const pilha = new Pilha();
pilha.push(1);
pilha.push(2);
console.log(pilha.pop()); // 2
console.log(pilha.peek()); // 1
Fila em JavaScript
class Fila {
constructor() {
this.itens = [];
}
enqueue(item) {
this.itens.push(item);
}
dequeue() {
if (!this.isEmpty()) {
return this.itens.shift();
} else {
throw new Error("dequeue from empty queue");
}
}
isEmpty() {
return this.itens.length === 0;
}
peek() {
if (!this.isEmpty()) {
return this.itens[0];
} else {
throw new Error("peek from empty queue");
}
}
}
// Exemplo de uso:
const fila = new Fila();
fila.enqueue(1);
fila.enqueue(2);
console.log(fila.dequeue()); // 1
console.log(fila.peek()); // 2
Quando Usar Pilha e Fila
Pilha
• Algoritmos de Backtracking: Pilhas são úteis quando você precisa voltar atrás em um processo, como em algoritmos de busca em profundidade (DFS) ou resolução de labirintos.
Fila
• Processamento em Ordem de Chegada: Em sistemas onde a ordem de chegada deve ser respeitada, como em filas de atendimento ou sistemas de impressão.
Palavras Finais
Compreender as diferenças entre pilha e fila é crucial para qualquer programador iniciante.
Ambas as estruturas de dados oferecem soluções para problemas específicos e são amplamente utilizadas em diversas áreas da ciência da computação.
Pilhas são ideais para situações onde você precisa de um acesso rápido ao último elemento inserido, enquanto filas são perfeitas para cenários onde a ordem de processamento é fundamental.
Continue praticando e experimentando com esses conceitos em seus projetos.
E por hoje é só!
E se você quiser aprender mais sobre programação, continue me acompanhando!
Se você gostou deste vídeo, dê uma curtida nele e aproveite para se inscrever no canal. Não se esqueça de ativar as notificações para receber um aviso quando novos vídeos forem publicados.
E até a próxima!
Me acompanhe aqui ⤵⤵
💻 Blog: https://celsokitamura.com.br
💻 Instagram: / celsokitamura
🎥 Youtube: / celsokitamura
#PilhaEFila
#SouAppDev
Повторяем попытку...
Доступные форматы для скачивания:
Скачать видео
-
Информация по загрузке: