networkx.algorithms.traversal.breadth_first_search.bfs_predecessors

bfs_predecessors(G, source, depth_limit=None)[源代码]

从源返回宽度优先搜索中前置任务的迭代器。

参数
  • GNETWorkX图

  • 来源node )--指定宽度优先搜索的起始节点

  • depth_limitint, optional(default=len(G)) )--指定最大搜索深度

返回

pred --(节点,前置器)迭代器,其中前置器是节点的前置器列表。

返回类型

iterator

实际案例

>>> G = nx.path_graph(3)
>>> print(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)])
>>> print(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])
>>> print(sorted(nx.bfs_predecessors(M, source=1, depth_limit=3)))
[(0, 1), (2, 1), (3, 2), (4, 3), (7, 2), (8, 7)]

提示

根据D.eppstein于2004年7月发布的http://www.ics.uci.edu/~eppstein/pads/bfs.py。根据维基百科的文章“深度限制搜索”修改允许深度限制。

参见

bfs_tree(), bfs_edges(), edge_bfs()