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. undirectedAdjList
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 }) , "undirectedAdjList
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.");'
```