#javascript #reactjs #graph #breadth-first-search
#язык JavaScript #реагирует на #График #широта-первый-поиск
Вопрос:
Я пытаюсь составить список смежности для алгоритма поиска «дыхание первым» и хочу найти соседние узлы. В настоящее время я пытаюсь просмотреть каждый узел во всех строках, а затем либо 1, либо — 1 для левого и правого соседних узлов.
const getNeighbours = (row, col) =gt; { let neighbours = []; let left; let right; if(row gt; 0 ){ neighbours[left] = [row - 1]; } else if(row === 0){ neighbours[right] = [row 1]; } console.log(neighbours[left]) }
График создается в виде 2D-массива со строками и столбцами.
const createGrid = () =gt; { let neighbours = []; let grid = []; for (let row = 1; row lt; 20; row ) { grid[row]= []; for (let col = 1; col lt; 47; col ) { grid = createNode(grid, row, col); } grid.push(grid[row]); } return grid; };
Значения, которые я получаю для getNeighbour, — это всего лишь 20 массивов со значениями NaN. График не имеет граничных затрат и неориентирован.
Комментарии:
1. В чем заключается ценность
left
иright
вgetNeightbours
чем ? Вы объявили их, но я не вижу, чтобы они где — либо инициализировались в коде?2. In пытался инициализировать переменные слева и справа как строку -1/ строку 1, а затем сохранить их в соседнем.