當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python NetworkX bfs_predecessors用法及代碼示例


本文簡要介紹 networkx.algorithms.traversal.breadth_first_search.bfs_predecessors 的用法。

用法:

bfs_predecessors(G, source, depth_limit=None, sort_neighbors=None)

返回源中廣度優先搜索中前驅的迭代器。

參數

GNetworkX 圖
source節點

指定廣度優先搜索的起始節點

depth_limit整數,可選(默認=len(G))

指定最大搜索深度

sort_neighbors函數

將給定節點的鄰居列表作為輸入的函數,並在這些鄰居上返回 iterator,但具有自定義排序。

返回

pred:迭代器

(節點,前任)迭代器,其中 predecessor 是從 source 開始的廣度優先搜索中 node 的前任。

注意

基於 D. Eppstein 的 http://www.ics.uci.edu/~eppstein/PADS/BFS.py,2004 年 7 月。根據維基百科文章“Depth-limited-search”進行的允許深度限製的修改。

例子

>>> 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)]
>>> N = nx.DiGraph()
>>> nx.add_path(N, [0, 1, 2, 3, 4, 7])
>>> nx.add_path(N, [3, 5, 6, 7])
>>> print(sorted(nx.bfs_predecessors(N, source=2)))
[(3, 2), (4, 3), (5, 3), (6, 5), (7, 4)]

相關用法


注:本文由純淨天空篩選整理自networkx.org大神的英文原創作品 networkx.algorithms.traversal.breadth_first_search.bfs_predecessors。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。