dfs_predecessors#

dfs_predecessors(G, source=None, depth_limit=None, *, sort_neighbors=None)[源]#

返回从源节点进行深度优先搜索得到的前驱节点字典。

参数:
GNetworkX 图
source节点,可选

指定深度优先搜索的起始节点。请注意,您将获得包含 source 节点的所有连通分量中的节点的前驱节点。此输入仅指定 DFS 从何处开始。

depth_limit整数,可选 (默认值=len(G))

指定最大搜索深度。

sort_neighbors函数 (默认值=None)

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

返回:
pred: 字典

一个字典,其中节点作为键,前驱节点作为值。

注意

如果未指定源节点,则会任意选择一个源节点,并重复此过程直到搜索图中的所有连通分量。

此函数的实现改编自 David Eppstein 在 PADS 中的深度优先搜索函数,并根据维基百科文章“深度受限搜索”进行了修改以允许设置深度限制。

示例

>>> G = nx.path_graph(4)
>>> nx.dfs_predecessors(G, source=0)
{1: 0, 2: 1, 3: 2}
>>> nx.dfs_predecessors(G, source=0, depth_limit=2)
{1: 0, 2: 1}