0Pricing
C Academy · Aula

Árvores e grafos

Explore estruturas de árvores e grafos para representar dados hierárquicos e conectados em rede.

Árvores e grafos é uma aula grátis de C Academy no CoddyKit. Esta é a aula 3 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.

Árvores e grafos em C

Árvores e grafos em C

Árvores e grafos são estruturas de dados não lineares usadas para representar dados hierárquicos e de redes.

Nesta lição, você aprenderá:

  • Como as árvores e os grafos são estruturados.
  • Como implementar uma árvore binária em C.
  • Como representar grafos usando listas e matrizes de adjacência.
Árvores e grafos — ilustração 1

O que é uma árvore?

O que é uma árvore?

Uma árvore é uma estrutura de dados hierárquica composta por nós.

Termos importantes:

  • Raiz - O nó superior.
  • Pai e filho - Nós conectados diretamente.
  • Folha - Um nó sem filhos.

Exemplo: nó de árvore binária

Exemplo: nó de árvore binária

Em C, um nó de árvore binária é definido usando uma struct com ponteiros para os filhos esquerdo e direito.

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

struct Node {
    int data;
    struct Node *left, *right;
};

struct Node* createNode(int data) {
    struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
    newNode->data = data;
    newNode->left = newNode->right = NULL;
    return newNode;
}

int main() {
    struct Node *root = createNode(10);
    return 0;
}

Travessia de árvore binária

Travessia de árvore binária

Métodos de travessia:

  • Inorder (LNR) - Esquerda, Node, direita.
  • Preorder (NLR) - Node, esquerda, direita.
  • Postorder (LRN) - Esquerda, direita, Node.

Exemplo: travessia Inorder

Exemplo: travessia Inorder

Este programa realiza uma travessia Inorder de uma árvore binária.

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

struct Node {
    int data;
    struct Node *left, *right;
};

void inorder(struct Node *root) {
    if (root != NULL) {
        inorder(root->left);
        printf("%d ", root->data);
        inorder(root->right);
    }
}

int main() {
    struct Node *root = malloc(sizeof(struct Node));
    root->data = 10;
    root->left = NULL;
    root->right = NULL;
    inorder(root);
    return 0;
}

O que é um grafo?

O que é um grafo?

Um grafo é uma coleção de nós (vértices) conectados por arestas.

Os grafos podem ser:

  • Direcionados - As arestas têm uma direção.
  • Não direcionados - As arestas não têm direção.

Representação de grafos

Representação de grafos

Os grafos podem ser representados usando:

  • Matriz de adjacência - Um vetor bidimensional que representa as conexões.
  • Lista de adjacência - Uma lista em que cada nó aponta para seus vizinhos.

Travessia de grafos

Travessia de grafos

Métodos comuns de travessia:

  • Busca em largura (BFS) - Visita todos os vizinhos antes de avançar para níveis mais profundos.
  • Busca em profundidade (DFS) - Explora o máximo possível em profundidade antes de retroceder.

Resumo

Resumo

Nesta lição, você aprendeu:

  • Como as árvores e os grafos são estruturados.
  • Como realizar travessias em árvores.
  • Como os grafos são representados e percorridos.

Esta é a conclusão da seção Estruturas de Dados em C!

Árvores e grafos — ilustração 10

Perguntas Frequentes

A aula “Árvores e grafos” é grátis?

Sim — o texto completo de “Árvores e grafos” é 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 “Árvores e grafos”?

Explore estruturas de árvores e grafos para representar dados hierárquicos e conectados em rede. 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 3 de 3.

Quanto tempo leva a aula “Árvores e grafos”?

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