Grafos, DFS e BFS
Representações, florestas de pesquisa e caminhos mínimos em grafos sem pesos.
Representa pelo uso
com vértices e ligações. Dirigido distingue u->v de v->u. Simples proíbe laços e paralelas.
| Precisas de | Escolhe |
|---|---|
| Teste de aresta e grafo denso | Matriz |
| Percurso linear em grafo esparso | Listas |
Enumerar vizinhos de u | Listas em |
Não dirigido guarda cada aresta duas vezes. Soma dos graus vale . Árvore com n tem n-1 arestas.
DFS marca cedo
Marca na descoberta, antes de explorar. Visita os alcançáveis da origem. Repete em cada por visitar para cobrir componentes.
- Pilha de chamadas guarda o caminho suspenso. Pode chegar a .
- Ordem depende de origem e vizinhos. Iterativa simples pode divergir da recursiva.
BFS dá distâncias
- Origem com distância zero na fila.
- Retira
u; vizinho novo recebedist+1e entra na fila. - Marca ao inserir, não ao retirar.
A fila sai por distâncias crescentes, logo a primeira chegada é mínima em arestas. Pesos diferentes pedem outro algoritmo.
Com origem 0, camadas {0}, {1,2}, {3}, {4} e distâncias [0,1,1,2,3,ausente]. Custa com auxiliar .
Contagens e cores
- Arestas de componente: soma graus dos visitados e divide por dois.
- Até distância
d: BFS sem expandir a camadad, origem excluída. Reinicia estados entre chamadas. - Bipartido: colore por camadas em todas as componentes. Aresta igual revela ciclo ímpar.