PythonColeçõesavancado

Grafo com dicionário

Grafos estão por toda parte: redes sociais, rotas de navegação, dependências de pacotes. Na prática, você precisa adicionar arestas entre nós sem saber quais já existem. Dominar a representação com dicionário de listas permite montar qualquer grafo dinamicamente – um passo essencial antes de implementar busca em largura ou caminho mínimo.

O PROBLEMA

Represente grafo com dicionário de listas de adjacência.

EXEMPLO

grafo["A"]=["B","C"]
sao_vizinhos("A","B") → True

SOBRE O CONCEITO

A estrutura é um dicionário onde cada chave é um nó e o valor é uma lista de seus vizinhos. Para adicionar a aresta "A"-"B", você faz grafo["A"].append("B"). O erro mais comum é tentar adicionar sem antes garantir que o nó existe: se grafo.get("A") retorna None, o append quebra. Por isso, use if "A" not in grafo: grafo["A"] = [] antes de append. Com isso, a função sao_vizinhos verifica com "B" in grafo.get("A", []).

RESOLUÇÃO

Mais exercícios de Coleções

PYCO20I · IntermediárioCache com dicionárioPYCO24A · AvançadoHistograma de textoPYCO15I · IntermediárioTuplas como chavesPYCO16I · IntermediárioSet de emails únicos
Ver todos os exercícios de Python