使用BFS查找从源节点开始的所有路径

时间:2018-02-19 21:46:28

标签: algorithm networkx graph-theory breadth-first-search

我有一个有向图,我编写了一个代码,使用bfs算法查找起始节点的所有路径。这是我的代码:

G = nx.DiGraph()
G.add_path([1, 2])
G.add_path([1, 3])
G.add_path([2, 7])
G.add_path([3, 4])
G.add_path([4, 2])
G.add_path([4, 6])
G.add_path([5, 2])
G.add_path([6, 5])
G.add_path([7, 8])
G.add_path([8, 9])
G.add_path([8, 10])

def bfs(G, s):
    q = queue.Queue()
    visited = []
    q.put(s)
    visited.append(s)
    while not q.empty():
        v = q.get()
        for node in G.neighbors(v):
            if node not in visited:
                q.put(node)
                visited.append(node)
    print(visited)

bfs(G, 3)

算法的问题是我可以找到将从起始节点访问的所有节点,但我不能保存(打印)我找到的每个路径。如何修改我的算法来实现它?

0 个答案:

没有答案