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, [])

Exercícios relacionados