Я пытаюсь реализовать алгоритм DFS в React, Redux для его визуализации.Для создания списка смежности я использую структуру данных Map()
в JavaScript:
dfs(v, visited, adjList) {
console.log(v);
visited[v] = true;
var get_neighbours = adjList.get(v);
for (var i in get_neighbours) {
var get_elem = get_neighbours[i];
if (!visited[get_elem])
this.dfs(get_elem, visited, adjList);
}
}
dfsStart(e) {
var n = 0;
var adjList = new Map();
for (var i = 0; i < this.props.edges.length; i++) {
n = Math.max(this.props.edges[i].u, this.props.edges[i].v);
}
for (var i = 1; i <= n; i++) {
adjList.set(i, []);
}
for (var key of adjList.keys()) {
console.log(key);
}
//console.log(adjList.size);
for (var i = 0; i < this.props.edges.length; i++) {
var x = this.props.edges[i].u;
var y = this.props.edges[i].v;
console.log(x + " " + y);
[...adjList.get(x), y] - > where I am getting error
}
for (var key of adjList.values()) {
console.log(key);
}
var visited = [];
for (i = 1; i <= n; i++) {
visited[i] = false;
}
this.dfs(1, visited, adjList);
}
Я даже пытался вставить значения в пустой список с помощью метода push()
следующим образом
adjList.get(x).push(y)
Но это также дает мне ошибку!
Uncaught TypeError: Невозможно преобразовать undefined или null в объект в Function.from ()
И когда я использую push()
:
Layout.js: 72 Uncaught TypeError: Невозможно прочитать свойство push
из неопределенного в Layout.dfsStart (Layout.js: 72)