Почему эта реализация Графа использует массив для посещенного состояния? - PullRequest
0 голосов
/ 11 февраля 2019

Эта реализация Geeks for Geeks странным образом использует массив для реализации bfs.

Ссылка: https://www.geeksforgeeks.org/implementation-graph-javascript/

На шаге «добавление начального узла в очередь» он даже назначает «начальный узел» в качестве индекса массива «посещенных», что звучит очень плохо(было бы немного больше смысла, если бы он использовал объект в качестве типа).Мне было интересно, если они неправильно написали это или нет, я хотел бы, чтобы кто-то более опытный объяснил мне.

Спасибо!

1 Ответ

0 голосов
/ 11 февраля 2019

Для обхода необходим эффективный способ поиска определенного узла в посещаемом наборе.Это можно эффективно сделать с помощью поиска в массиве, например if (!visited[neigh]).Другой вариант - использовать строковый ключ и объект для представления посещенного набора, но он, вероятно, будет менее эффективным.Ссылка на узлы как на объекты только усложнит ситуацию, поскольку не будет естественного ключа, который можно было бы использовать для определения членства в посещаемом наборе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...