Instruções

Construir um Conversor de Lista de Adjacência para Matriz

Neste laboratório, você construirá uma função que converte uma representação de lista de adjacência de um grafo em uma matriz de adjacência. Uma lista de adjacência é um dicionário onde cada chave representa um nó, e o valor correspondente é uma lista de nós aos quais o nó chave está conectado. Uma matriz de adjacência é um array 2D onde a entrada na posição [i][j] é 1 se houver uma aresta do nó i para o nó j, e 0 caso contrário. Por exemplo, dada a lista de adjacência:
{
    0: [1, 2],
    1: [2],
    2: [0, 3],
    3: [2]
}
A matriz de adjacência correspondente seria:
[
    [0, 1, 1, 0],
    [0, 0, 1, 0],
    [1, 0, 0, 1],
    [0, 0, 1, 0]
]
Objetivo: Cumprir as user stories abaixo e fazer todos os testes passarem para completar o laboratório. Histórias de Usuário: 1. Você deve definir uma função chamada adjacency_list_to_matrix para converter uma lista de adjacência em uma matriz de adjacência. 2. A função deve receber um dicionário que representa a lista de adjacência de um grafo não ponderado (seja não direcionado ou direcionado) como seu argumento. 3. A função deve:
  • Converta a lista de adjacência para uma matriz de adjacência.
  • Imprima cada linha na matriz de adjacência.
  • Retorne a matriz de adjacência.
Por exemplo, adjacency_list_to_matrix({0: [2], 1: [2, 3], 2: [0, 1, 3], 3: [1, 2]}) deve imprimir:
[0, 0, 1, 0]
[0, 0, 1, 1]
[1, 1, 0, 1]
[0, 1, 1, 0]
e retorne [[0, 0, 1, 0], [0, 0, 1, 1], [1, 1, 0, 1], [0, 1, 1, 0]].

O que fazer:

Testes:

  • Você deve definir uma função chamada `adjacency_list_to_matrix`.
  • A função `adjacency_list_to_matrix` deve ter um parâmetro.
  • A função deve determinar corretamente o número de nós a partir da lista de adjacência.
  • A função deve definir corretamente os valores da matriz para `1` para arestas existentes.
  • A função deve imprimir cada linha da matriz.
  • A função deve retornar a matriz de adjacência.
  • Quando dada a lista de adjacência `{0: [1, 2], 1: [2], 2: [0, 3], 3: [2]}`, a função deve retornar `[[0, 1, 1, 0], [0, 0, 1, 0], [1, 0, 0, 1], [0, 0, 1, 0]]`.
  • Quando fornecida a lista de adjacência `{0: [1], 1: [0]}`, a função deve retornar `[[0, 1], [1, 0]]`.
  • Quando fornecida a lista de adjacência `{0: [], 1: [], 2: []}`, a função deve retornar `[[0, 0, 0], [0, 0, 0], [0, 0, 0]]`.

Preview