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. An adjacency list is an object where each key represents a node, and the corresponding value is an array of nodes that the key node is connected to. 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 function chamada adjacencyListToMatrix para converter uma lista de adjacência em uma matriz de adjacência.
2. A função deve receber um objeto que representa a lista de adjacência de um grafo não ponderado (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.
adjacencyListToMatrix({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 `adjacencyListToMatrix`.
- A `adjacencyListToMatrix` função 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