3.6 KiB
3.6 KiB
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
587d8256367417b2b2512c78 | Adjacency Matrix | 1 | Matriz de adjacência |
Description
1 2 3Acima está um gráfico muito simples, não direcionado, no qual você tem três nós, onde o primeiro nó está conectado ao segundo e terceiro nó. Nota : Os números na parte superior e esquerda da matriz são apenas rótulos para os nós. Abaixo está uma implementação JavaScript da mesma coisa.
------
1 | 0 1 1
2 | 1 0 0
3 | 1 0 0
var adjMat = [Ao contrário de uma lista de adjacências, cada "linha" da matriz deve ter o mesmo número de elementos que os nós no gráfico. Aqui temos uma matriz de três por três, o que significa que temos três nós em nosso gráfico. Um gráfico direcionado seria semelhante. Abaixo está um gráfico onde o primeiro nó tem uma borda apontando para o segundo nó e, em seguida, o segundo nó tem uma borda apontando para o terceiro nó.
[0, 1, 1]
[1, 0, 0]
[1, 0, 0]
];
var adjMatDirected = [Gráficos também podem ter pesos em suas bordas. Até agora, temos arestas não ponderadas onde apenas a presença e a falta de aresta é binária (
[0, 1, 0]
[0, 0, 1]
[0, 0, 0]
];
0
ou 1
). Você pode ter pesos diferentes dependendo do seu aplicativo. Instructions
Tests
tests:
- text: <code>undirectedAdjList</code> deve conter apenas cinco nós.
testString: 'assert((adjMatUndirected.length === 5) && adjMatUndirected.map(function(x) { return x.length === 5 }).reduce(function(a, b) { return a && b }) , "<code>undirectedAdjList</code> should only contain five nodes.");'
- text: Deve haver uma borda entre o primeiro e o quarto nó.
testString: 'assert((adjMatUndirected[0][3] === 1) && (adjMatUndirected[3][0] === 1), "There should be an edge between the first and fourth node.");'
- text: Deve haver uma borda entre o primeiro e o terceiro nó.
testString: 'assert((adjMatUndirected[0][2] === 1) && (adjMatUndirected[2][0] === 1), "There should be an edge between the first and third node.");'
- text: Deve haver uma borda entre o terceiro e o quinto nó.
testString: 'assert((adjMatUndirected[2][4] === 1) && (adjMatUndirected[4][2] === 1), "There should be an edge between the third and fifth node.");'
- text: Deve haver uma borda entre o quarto e o quinto nó.
testString: 'assert((adjMatUndirected[3][4] === 1) && (adjMatUndirected[4][3] === 1), "There should be an edge between the fourth and fifth node.");'
Challenge Seed
var adjMatUndirected = [
];
Solution
// solution required