Aula 16

Introdução aos Grafos: Representação e Algoritmos de Busca

Estruturas de Dados Avançadas

Objetivos Didáticos

  • Conceito de vértices, arestas direcionadas e ponderadas. Representação computacional: Matriz de Adjacência vs Lista de Adjacência. Busca em Largura (BFS) e Busca em Profundidade (DFS).
  • Eficiência assintótica de tempo e espaço
  • Implementação em C com integridade de memória

Conceitos Fundamentais

  • Vértices e Arestas
  • Matriz vs Lista de Adjacência
  • Busca em Largura (BFS)
  • Busca em Profundidade (DFS)
  • Detecção de Ciclos

Estrutura de Implementação

// Busca em Profundidade (DFS) em Grafo com Lista de Adjacência
void dfs_util(int v, bool visitados[], const ListaAdj* grafo) {
    visitados[v] = true;
    printf("%d ", v);
    for (NoVizinho* viz = grafo->adj[v]; viz != NULL; viz = viz->prox) {

Próximos Passos

Acesse os Exercícios com Gabarito e o Projeto Prático.