5.2 KiB
5.2 KiB
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
587d825c367417b2b2512c90 | Breadth-First Search | 1 | Primeira pesquisa |
Description
Infinity
. Isso fornece uma referência para o caso em que um nó pode não estar acessível a partir do seu nó inicial. Em seguida, você vai querer ir do nó inicial para seus vizinhos. Estes vizinhos estão a uma distância de distância e neste ponto você deve adicionar uma unidade de distância às distâncias que você está acompanhando. Por último, uma estrutura de dados importante que ajudará a implementar o algoritmo de pesquisa de largura única é a fila. Esta é uma matriz onde você pode adicionar elementos a uma extremidade e remover elementos da outra extremidade. Isso também é conhecido como uma estrutura de dados FIFO ou First-In-First-Out . Instructions
bfs()
que usa um gráfico de matriz de adjacência (uma matriz bidimensional) e uma raiz de rótulo de nó como parâmetros. O rótulo do nó será apenas o valor inteiro do nó entre 0
e n - 1
, onde n
é o número total de nós no gráfico. Sua função produzirá um par de valores-chave do objeto JavaScript com o nó e sua distância da raiz. Se o nó não puder ser alcançado, ele deverá ter uma distância do Infinity
. Tests
tests:
- text: 'O gráfico de entrada <code>[[0, 1, 0, 0], [1, 0, 1, 0], [0, 1, 0, 1], [0, 0, 1, 0]]</code> com um nó inicial de <code>1</code> deve retornar <code>{0: 1, 1: 0, 2: 1, 3: 2}</code>'
testString: 'assert((function() { var graph = [[0, 1, 0, 0], [1, 0, 1, 0], [0, 1, 0, 1], [0, 0, 1, 0]]; var results = bfs(graph, 1); return isEquivalent(results, {0: 1, 1: 0, 2: 1, 3: 2})})(), "The input graph <code>[[0, 1, 0, 0], [1, 0, 1, 0], [0, 1, 0, 1], [0, 0, 1, 0]]</code> with a start node of <code>1</code> should return <code>{0: 1, 1: 0, 2: 1, 3: 2}</code>");'
- text: 'O gráfico de entrada <code>[[0, 1, 0, 0], [1, 0, 1, 0], [0, 1, 0, 0], [0, 0, 0, 0]]</code> com um nó inicial de <code>1</code> deve retornar <code>{0: 1, 1: 0, 2: 1, 3: Infinity}</code>'
testString: 'assert((function() { var graph = [[0, 1, 0, 0], [1, 0, 1, 0], [0, 1, 0, 0], [0, 0, 0, 0]]; var results = bfs(graph, 1); return isEquivalent(results, {0: 1, 1: 0, 2: 1, 3: Infinity})})(), "The input graph <code>[[0, 1, 0, 0], [1, 0, 1, 0], [0, 1, 0, 0], [0, 0, 0, 0]]</code> with a start node of <code>1</code> should return <code>{0: 1, 1: 0, 2: 1, 3: Infinity}</code>");'
- text: 'O gráfico de entrada <code>[[0, 1, 0, 0], [1, 0, 1, 0], [0, 1, 0, 1], [0, 0, 1, 0]]</code> com um nó inicial de <code>0</code> deve retornar <code>{0: 0, 1: 1, 2: 2, 3: 3}</code>'
testString: 'assert((function() { var graph = [[0, 1, 0, 0], [1, 0, 1, 0], [0, 1, 0, 1], [0, 0, 1, 0]]; var results = bfs(graph, 0); return isEquivalent(results, {0: 0, 1: 1, 2: 2, 3: 3})})(), "The input graph <code>[[0, 1, 0, 0], [1, 0, 1, 0], [0, 1, 0, 1], [0, 0, 1, 0]]</code> with a start node of <code>0</code> should return <code>{0: 0, 1: 1, 2: 2, 3: 3}</code>");'
- text: 'O gráfico de entrada <code>[[0, 1], [1, 0]]</code> com um nó inicial de <code>0</code> deve retornar <code>{0: 0, 1: 1}</code>'
testString: 'assert((function() { var graph = [[0, 1], [1, 0]]; var results = bfs(graph, 0); return isEquivalent(results, {0: 0, 1: 1})})(), "The input graph <code>[[0, 1], [1, 0]]</code> with a start node of <code>0</code> should return <code>{0: 0, 1: 1}</code>");'
Challenge Seed
function bfs(graph, root) {
// Distance object returned
var nodesLen = {};
return nodesLen;
};
var exBFSGraph = [
[0, 1, 0, 0],
[1, 0, 1, 0],
[0, 1, 0, 1],
[0, 0, 1, 0]
];
console.log(bfs(exBFSGraph, 3));
After Test
console.info('after the test');
Solution
// solution required