Faça uma função para obter todos os nós adjacentes (vizinhos) a um nó do grafo, dado que o grafo é representado por uma lista de adjacências.
Passo 1
O enunciado pede pra gente criar uma função que, dado um grafo representado por lista de adjacência e um nó alvo, retorne todos os seus vizinhos. É um problema de estrutura de dados envolvendo grafos e acesso direto à lista de adjacência.
Passo 2
Primeiro, vamos adotar uma forma de representar o grafo em Python: um dicionário onde a chave é o nó e o valor é a lista de nós adjacentes. Por exemplo:
grafo = {
'A': ['B', 'C'],
'B': ['A', 'D'],
'C': ['A'],
'D': ['B']
}
Para obter os vizinhos de um nó, basta acessar o valor associado a essa chave no dicionário. Mas antes, vale checar se o nó existe no grafo, para não gerar erro.
Passo 3
A implementação da função fica assim:
def obter_vizinhos(grafo, no):
# Se o nó não estiver no dicionário, retornamos lista vazia
return grafo.get(no, [])
Essa função usa o método
dict.get(chave, valor_padrao)
, que retorna grafo[no]
se existir, ou []
caso contrário. É uma solução simples e direta.Passo 4
Podemos testar com alguns exemplos:
print(obter_vizinhos(grafo, 'A')) # saída: ['B', 'C']
print(obter_vizinhos(grafo, 'C')) # saída: ['A']
print(obter_vizinhos(grafo, 'X')) # saída: [] (nó não existe)
Resposta
def obter_vizinhos(grafo, no):
return grafo.get(no, [])