我正在将networkx库用于带有BFS和DFS的Python。我需要获取一棵树,然后对其进行探索以获取从起点到终点的路径。
对于BFS部分,我正在使用bfs_successors
,它从源头开始进行广度优先搜索中的后继迭代器。
对于DFS部分,我正在使用:dfs_successors
,它从源返回深度优先搜索的后继字典。
我需要从两种算法中获得从源到末端的节点列表。每个节点是(x,y),并且是网格中的一个单元。
这是我到目前为止所做的:
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)]
这是从头到尾的节点列表。
您对此有何建议?你能帮我吗?
只需将.keys()
添加到dict()
的末尾:
DFS = nx.bfs_successors(mazePRIM,start)
print(dict(BFS).keys())
DFS = nx.dfs_successors(mazePRIM, start)
print(DFS.keys())