0Pricing
C Academy · Aula

Listas encadeadas

Aprenda como funcionam as listas encadeadas e como implementar operações como inserção e exclusão.

Listas encadeadas é uma aula grátis de C Academy no CoddyKit. Esta é a aula 1 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.

Listas encadeadas em C

Listas encadeadas em C

Uma lista encadeada é uma estrutura de dados dinâmica na qual os elementos (nós) são conectados usando ponteiros.

Nesta lição, você aprenderá:

  • Como as listas encadeadas funcionam.
  • Como inserir e excluir nós em uma lista encadeada.
  • As vantagens das listas encadeadas em relação aos vetores.
Listas encadeadas — ilustração 1

Exemplo: definindo um Node de lista encadeada

Exemplo: definindo um Node de lista encadeada

Em C, um nó de lista encadeada é definido usando uma struct com um campo de dados e um ponteiro para o próximo nó.

#include <stdio.h>
#include <stdlib.h>

struct Node {
    int data;
    struct Node *next;
};

int main() {
    struct Node *head = NULL;
    return 0;
}

Inserindo um Node no início

Inserindo um Node no início

Para inserir um novo nó no início de uma lista encadeada:

  • Crie um novo nó.
  • Defina o ponteiro next dele para o início atual.
  • Atualize o ponteiro inicial.

Exemplo: inserindo um Node no início

Exemplo: inserindo um Node no início

Este programa insere um novo nó no início de uma lista encadeada.

#include <stdio.h>
#include <stdlib.h>

struct Node {
    int data;
    struct Node *next;
};

void insertAtBeginning(struct Node **head, int newData) {
    struct Node *newNode = (struct Node*)malloc(sizeof(struct Node));
    newNode->data = newData;
    newNode->next = *head;
    *head = newNode;
}

int main() {
    struct Node *head = NULL;
    insertAtBeginning(&head, 10);
    printf("Inserted: %d\n", head->data);
    return 0;
}

Excluindo um Node

Excluindo um Node

Para excluir um nó de uma lista encadeada:

  • Encontre o nó que será excluído.
  • Atualize o ponteiro next do nó anterior.
  • Libere a memória do nó excluído.

Exemplo: excluindo um Node

Exemplo: excluindo um Node

Este programa exclui um nó de uma lista encadeada.

#include <stdio.h>
#include <stdlib.h>

struct Node {
    int data;
    struct Node *next;
};

void deleteNode(struct Node **head, int key) {
    struct Node *temp = *head, *prev;
    if (temp != NULL && temp->data == key) {
        *head = temp->next;
        free(temp);
        return;
    }
    while (temp != NULL && temp->data != key) {
        prev = temp;
        temp = temp->next;
    }
    if (temp == NULL) return;
    prev->next = temp->next;
    free(temp);
}

int main() {
    struct Node *head = (struct Node*)malloc(sizeof(struct Node));
    head->data = 10;
    head->next = NULL;
    deleteNode(&head, 10);
    return 0;
}

Vantagens das listas encadeadas

Vantagens das listas encadeadas

As listas encadeadas têm várias vantagens em relação aos vetores:

  • Tamanho dinâmico (não é necessário especificar o tamanho antecipadamente).
  • Inserções e exclusões eficientes.
  • Não há desperdício de memória causado por tamanhos fixos.

Resumo

Resumo

Nesta lição, você aprendeu:

  • O que são listas encadeadas e como elas funcionam.
  • Como inserir e excluir nós.
  • As vantagens das listas encadeadas em relação aos vetores.

Em seguida, você explorará pilhas e filas em C!

Listas encadeadas — ilustração 9

Perguntas Frequentes

A aula “Listas encadeadas” é grátis?

Sim — o texto completo de “Listas encadeadas” é 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 “Listas encadeadas”?

Aprenda como funcionam as listas encadeadas e como implementar operações como inserção e exclusão. 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 1 de 3.

Quanto tempo leva a aula “Listas encadeadas”?

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