bfs_successors#

bfs_successors(G, source, depth_limit=None, sort_neighbors=None)[源代码]#

返回从源节点开始的广度优先搜索中的后继节点迭代器。

参数
GNetworkX 图
source节点

指定广度优先搜索的起始节点

depth_limitint, 可选 (默认=len(G))

指定最大搜索深度

sort_neighbors函数 (默认=None)

一个函数,接受一个节点迭代器作为输入,并返回一个具有自定义排序的相同节点的迭代器。例如,sorted 将按升序排序节点。

返回
succ: 迭代器

(node, successors) 迭代器,其中 successors 是从 source 开始的广度优先搜索中 node 的非空后继节点列表。要在迭代器中出现,node 必须有后继节点。

另请参阅

bfs_tree
bfs_edges
edge_bfs

注释

基于 D. Eppstein 于 2004 年 7 月编写的 http://www.ics.uci.edu/~eppstein/PADS/BFS.py。允许深度限制的修改基于维基百科文章“深度限制搜索”。

示例

>>> G = nx.path_graph(3)
>>> dict(nx.bfs_successors(G, 0))
{0: [1], 1: [2]}
>>> H = nx.Graph()
>>> H.add_edges_from([(0, 1), (0, 2), (1, 3), (1, 4), (2, 5), (2, 6)])
>>> dict(nx.bfs_successors(H, 0))
{0: [1, 2], 1: [3, 4], 2: [5, 6]}
>>> G = nx.Graph()
>>> nx.add_path(G, [0, 1, 2, 3, 4, 5, 6])
>>> nx.add_path(G, [2, 7, 8, 9, 10])
>>> dict(nx.bfs_successors(G, source=1, depth_limit=3))
{1: [0, 2], 2: [3, 7], 3: [4], 7: [8]}
>>> G = nx.DiGraph()
>>> nx.add_path(G, [0, 1, 2, 3, 4, 5])
>>> dict(nx.bfs_successors(G, source=3))
{3: [4], 4: [5]}
----

其他后端也实现了此函数

cugraphGPU 加速后端。

sort_neighbors 参数尚不支持。