Ícone do site Celso Kitamura

Pilha x Fila – Conheça as Diferenças e Como Usar Cada Estrutura

Pilha x Fila
5/5 - (1 voto)

Você não sabe quando usar uma pilha ou uma fila em seus projetos?

 

Nesse vídeo eu vou te mostrar como escolher a estrutura de dados certa para cada situação.

 

Hoje vamos conversar sobre pilha e fila, duas estruturas fundamentais na programação que podem simplificar muito o seu trabalho.

 

 

Pilha x Fila – Conheça as Diferenças e Como Usar Cada Estrutura

 

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

 

 

Uso Comum

 

 

Operações Básicas

 

 

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

 

 

Fila

 

 

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.

 

Converse com meu assistente virtual, o Kitamoore, e ele criará para você um guia personalizado para estudar programação e construir uma carreira de desenvolvedor de sucesso em 12 meses ou menos!

Olha o link: 👉🏼 https://celsokitamura.com.br/GuiaByKitamoore

Bora programar e codar! 👊

Sair da versão mobile