В настоящее время я использую библиотеку networkx для Python с BFS и DFS. Мне нужно получить дерево, а затем исследовать его, чтобы получить путь от начального узла до конечного узла.
Для части BFS я использую bfs_successors
, и он возвращает итератор преемников в ширину -поиск из источника.
Для части DFS я использую: dfs_successors
, и он возвращает словарь преемников при поиске в глубину из источника.
Мне нужно получить список узлов от источника до конца из обоих алгоритмов. Каждый узел равен (x, y) и представляет собой ячейку в сетке.
У вас есть какие-нибудь советы, как это сделать? Не могли бы вы мне помочь?
MWE:
DFS = nx.bfs_successors(mazePRIM,start)
print(dict(BFS))
DFS = nx.dfs_successors(mazePRIM, start)
print(DFS)
и я получаю следующее:
{(0, 0): [(0, 1), (1, 0)], (1, 0): [(1, 1)], (1, 1): [(1, 2)], (1, 2): [(0, 2), (1, 3)], (0, 2): [(0, 3)]}
{(0, 0): [(0, 1), (1, 0)], (1, 0): [(1, 1)], (1, 1): [(1, 2)], (1, 2): [(0, 2), (1, 3)], (0, 2): [(0, 3)]}
Но мне нужен такой вывод:
[(0, 0), (1, 0), (1, 1), (1, 2), (1, 3)]
- список узлов от начала до конца.