bfs_predecessors#
- bfs_predecessors(G, source, depth_limit=None, sort_neighbors=None)[源代码]#
返回从源节点开始的广度优先搜索中的前驱节点的迭代器。
- 参数:
- GNetworkX 图
- source节点
指定广度优先搜索的起始节点
- depth_limitint, 可选 (默认=len(G))
指定最大搜索深度
- sort_neighbors函数 (默认=None)
一个函数,接受一个节点迭代器作为输入,并返回一个具有自定义顺序的相同节点的可迭代对象。例如,
sorted
将按升序对节点进行排序。
- 返回:
- pred: 迭代器
(node, predecessor) 迭代器,其中
predecessor
是从source
开始的广度优先搜索中node
的前驱节点。
说明
基于 D. Eppstein 于 2004 年 7 月编写的 http://www.ics.uci.edu/~eppstein/PADS/BFS.py。允许深度限制的修改基于维基百科文章“深度限制搜索 (Depth-limited-search)”。
示例
>>> G = nx.path_graph(3) >>> dict(nx.bfs_predecessors(G, 0)) {1: 0, 2: 1} >>> H = nx.Graph() >>> H.add_edges_from([(0, 1), (0, 2), (1, 3), (1, 4), (2, 5), (2, 6)]) >>> dict(nx.bfs_predecessors(H, 0)) {1: 0, 2: 0, 3: 1, 4: 1, 5: 2, 6: 2} >>> M = nx.Graph() >>> nx.add_path(M, [0, 1, 2, 3, 4, 5, 6]) >>> nx.add_path(M, [2, 7, 8, 9, 10]) >>> sorted(nx.bfs_predecessors(M, source=1, depth_limit=3)) [(0, 1), (2, 1), (3, 2), (4, 3), (7, 2), (8, 7)] >>> N = nx.DiGraph() >>> nx.add_path(N, [0, 1, 2, 3, 4, 7]) >>> nx.add_path(N, [3, 5, 6, 7]) >>> sorted(nx.bfs_predecessors(N, source=2)) [(3, 2), (4, 3), (5, 3), (6, 5), (7, 4)] ----
其他后端实现了此函数
- cugraphGPU 加速后端。
sort_neighbors
参数尚不支持。