0Pricing
C Academy · Aula

Pilhas e filas

Entenda as estruturas de dados pilha (LIFO) e fila (FIFO) e suas aplicações.

Pilhas e filas é uma aula grátis de C Academy no CoddyKit. Esta é a aula 2 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C Academy inclui 3 aulas no total.

Pilhas e filas em C

Pilhas e filas em C

Pilhas e filas são estruturas de dados lineares usadas para armazenar e gerenciar dados.

Nesta lição, você aprenderá:

  • Como as pilhas funcionam (LIFO - último a entrar, primeiro a sair).
  • Como as filas funcionam (FIFO - primeiro a entrar, primeiro a sair).
  • Como implementar pilhas e filas em C.
Pilhas e filas — ilustração 1

O que é uma pilha?

O que é uma pilha?

Uma pilha segue o princípio Último a entrar, primeiro a sair (LIFO).

Operações:

  • Empilhar - Adicionar um elemento ao topo.
  • Desempilhar - Remover o elemento do topo.
  • Consultar - Visualizar o elemento do topo sem removê-lo.

Exemplo: implementando uma pilha

Exemplo: implementando uma pilha

Este programa demonstra operações de pilha usando um vetor.

#include <stdio.h>
#define MAX 5

int stack[MAX], top = -1;

void push(int value) {
    if (top == MAX - 1) {
        printf("Stack Overflow\n");
    } else {
        stack[++top] = value;
    }
}

int pop() {
    if (top == -1) {
        printf("Stack Underflow\n");
        return -1;
    } else {
        return stack[top--];
    }
}

int main() {
    push(10);
    push(20);
    printf("Popped: %d\n", pop());
    return 0;
}

O que é uma fila?

O que é uma fila?

Uma fila segue o princípio Primeiro a entrar, primeiro a sair (FIFO).

Operações:

  • Enfileirar - Adicionar um elemento ao fim.
  • Desenfileirar - Remover um elemento do início.
  • Consultar - Visualizar o elemento do início sem removê-lo.

Exemplo: implementando uma fila

Exemplo: implementando uma fila

Este programa demonstra operações de fila usando um vetor.

#include <stdio.h>
#define MAX 5

int queue[MAX], front = -1, rear = -1;

void enqueue(int value) {
    if (rear == MAX - 1) {
        printf("Queue Overflow\n");
    } else {
        if (front == -1) front = 0;
        queue[++rear] = value;
    }
}

int dequeue() {
    if (front == -1 || front > rear) {
        printf("Queue Underflow\n");
        return -1;
    } else {
        return queue[front++];
    }
}

int main() {
    enqueue(10);
    enqueue(20);
    printf("Dequeued: %d\n", dequeue());
    return 0;
}

Fila circular

Fila circular

Uma fila circular supera as limitações de uma fila normal reutilizando os espaços vazios.

As operações permanecem as mesmas, mas percorrem o vetor de forma circular.

Exemplo: fila circular

Exemplo: fila circular

Este programa demonstra a implementação de uma fila circular.

#include <stdio.h>
#define MAX 5

int queue[MAX], front = -1, rear = -1;

void enqueue(int value) {
    if ((rear + 1) % MAX == front) {
        printf("Queue Overflow\n");
    } else {
        if (front == -1) front = 0;
        rear = (rear + 1) % MAX;
        queue[rear] = value;
    }
}

int dequeue() {
    if (front == -1) {
        printf("Queue Underflow\n");
        return -1;
    }
    int data = queue[front];
    if (front == rear) {
        front = rear = -1;
    } else {
        front = (front + 1) % MAX;
    }
    return data;
}

int main() {
    enqueue(10);
    enqueue(20);
    printf("Dequeued: %d\n", dequeue());
    return 0;
}

Aplicações de pilhas e filas

Aplicações de pilhas e filas

As pilhas são usadas em:

  • Gerenciamento de chamadas de funções (recursão).
  • Operações de desfazer e refazer.
  • Avaliação de expressões.

As filas são usadas em:

  • Agendamento de tarefas em sistemas operacionais.
  • Gerenciamento de solicitações em servidores web.
  • Transferência de dados em redes.

Resumo

Resumo

Nesta lição, você aprendeu:

  • Como as pilhas e filas funcionam.
  • Como implementar operações de pilha e fila.
  • As aplicações de pilhas e filas.

Em seguida, você explorará árvores e grafos em C!

Pilhas e filas — ilustração 10

Perguntas Frequentes

A aula “Pilhas e filas” é grátis?

Sim — o texto completo de “Pilhas e filas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C Academy, atualize para CoddyKit PRO. O curso de C Academy inclui 3 aulas no total.

O que vou aprender em “Pilhas e filas”?

Entenda as estruturas de dados pilha (LIFO) e fila (FIFO) e suas aplicações. Você pratica C Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C Academy?

Nenhuma experiência prévia é necessária. C Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 3.

Quanto tempo leva a aula “Pilhas e filas”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C Academy?

Sim. Cada aula de C Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Listas encadeadas
  2. Pilhas e filas
  3. Árvores e grafos
← Voltar para C Academy