【发布时间】:2020-10-06 06:45:40
【问题描述】:
我目前正在使用带有 BFS 和 DFS 的 Python 的 networkx 库。我需要获取一棵树,然后对其进行探索以获取从开始节点到结束节点的路径。
对于 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)]
这是从头到尾的节点列表。
【问题讨论】:
-
从两种算法中推断出节点列表是什么意思?你能分享一个最小的可重现的例子吗?
-
嗨!我的意思是获取树,然后找到从开始节点到结束节点的路径...我添加了示例
标签: python graph networkx depth-first-search breadth-first-search