bfs_successors#
- bfs_successors(G, source, depth_limit=None, sort_neighbors=None)[source]#
返回从源节点开始进行广度优先搜索的后继迭代器。
- Parameters:
- GNetworkX 图
- source节点
指定广度优先搜索的起始节点
- depth_limitint, 可选(默认=len(G))
指定最大搜索深度
- sort_neighbors函数 (默认=None)
一个接受节点迭代器作为输入的函数,并返回具有自定义顺序的相同节点的可迭代对象。 例如,
sorted
将节点按升序排序。
- Returns:
- succ: 迭代器
(节点, 后继) 迭代器,其中
后继
是在从源
开始的广度优先搜索中节点
的非空后继列表。 要出现在迭代器中,节点
必须有后继。
Notes
基于 http://www.ics.uci.edu/~eppstein/PADS/BFS.py 由 D. Eppstein 于 2004 年 7 月编写。允许基于维基百科文章 “ 深度限制搜索” 的深度限制的修改。
Examples
>>> 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]}