Как получить путь между двумя узлами с помощью поиска по методу "Ширина-Первый"?

Я пытаюсь найти путь между двумя узлами в графе, где ребра невзвешенные.

Я использую Breadth First Search, который останавливается, когда находит цель, чтобы найти существование пути, но я не уверен, как получить этот путь.

Я попытался посмотреть список посещаемых узлов, но это, похоже, не помогло. Я видел, как кто-то ответил на этот вопрос, используя пролог, но я программист на С++.

Я также посмотрел на Dijkstras algorithm, но это похоже на убийство, так как простой поиск с помощью Breadth-I получил меня почти весь путь.

Как получить путь между двумя узлами с использованием поиска по ширине?

Ответ 1

В вашей структуре node вы добавляете переменную с именем parentNode, которая является родительским элементом этого node в пути. В конце вы можете получить путь путем перехода от цели node назад.