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


Python NetworkX dfs_labeled_edges用法及代碼示例


本文簡要介紹 networkx.algorithms.traversal.depth_first_search.dfs_labeled_edges 的用法。

用法:

dfs_labeled_edges(G, source=None, depth_limit=None)

在按類型標記的深度優先搜索 (DFS) 中迭代邊。

參數

GNetworkX 圖
source節點,可選

指定深度優先搜索的起始節點並返回從源可到達的組件中的邊。

depth_limitint,可選(默認=len(G))

指定最大搜索深度。

返回

邊:生成器

( u , v , d ) 形式的三元組生成器,其中 ( u , v ) 是深度優先搜索中正在探索的邊,d 是其中之一字符串‘forward’, ‘nontree’或‘reverse’。 ‘forward’ 邊是其中 u 已被訪問但 v 尚未訪問的邊。 ‘nontree’ 邊是 uv 都已被訪問但該邊不在 DFS 樹中的邊。 ‘reverse’ 邊位於 uv 都已被訪問的邊上,並且該邊位於 DFS 樹中。

注意

如果未指定源,則任意重複選擇源,直到搜索到圖中的所有組件。

該函數的實現改編自 David Eppstein 在PADS 中的深度優先搜索函數,並根據維基百科文章“Depth-limited search”進行了修改以允許深度限製。

例子

這些標簽比 dfs_edges() 更詳細地顯示了深度優先搜索算法的完整記錄:

>>> from pprint import pprint
>>>
>>> G = nx.DiGraph([(0, 1), (1, 2), (2, 1)])
>>> pprint(list(nx.dfs_labeled_edges(G, source=0)))
[(0, 0, 'forward'),
 (0, 1, 'forward'),
 (1, 2, 'forward'),
 (2, 1, 'nontree'),
 (1, 2, 'reverse'),
 (0, 1, 'reverse'),
 (0, 0, 'reverse')]

相關用法


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