networkx.algorithms.traversal.edgedfs.edge_dfs
的用法。用法:
edge_dfs(G, source=None, orientation=None)
G
中邊的定向深度優先搜索,從source
開始。以深度優先搜索順序產生 G 的邊,直到生成所有邊。
- G:圖形
有向/無向圖/多重圖。
- source:節點,節點列表
遍曆開始的節點。如果沒有,則任意重複選擇一個源,直到搜索到圖中每個節點的所有邊。
- orientation:無 | ‘original’ | ‘reverse’ | ‘ignore’(默認值:無)
對於有向圖和有向多重圖,邊遍曆不需要尊重邊的原始方向。當設置為‘reverse’ 時,每條邊都以相反的方向遍曆。當設置為‘ignore’ 時,每條邊都被視為無向。當設置為‘original’ 時,每條邊都被視為有向邊。在所有三種情況下,產生的邊元組都會添加最後一個條目來指示該邊被遍曆的方向。如果方向為無,則屈服邊沒有指示方向。方向受到尊重,但未報告。
- edge:有向邊
有向邊指示深度優先遍曆所采取的路徑。對於圖,
edge
的形式為(u, v)
,其中u
和v
是由遍曆確定的邊的尾部和頭部。對於多重圖,edge
的形式為(u, v, key)
,其中key
是邊的關鍵。當圖是有向時,u
和v
始終按實際有向邊的順序排列。如果orientation不是None,則邊元組將擴展以包括該邊上的遍曆方向(‘forward’或‘reverse’)。
參數:
生成(Yield):
注意:
這個函數的目標是訪問邊。它與
dfs_edges()
提供的更熟悉的節點深度優先遍曆不同,因為它不會在訪問每個節點後停止。在具有邊 [(0, 1), (1, 2), (2, 1)] 的有向圖中,如果不是此函數提供的函數,則不會訪問邊 (2, 1)。例子:
>>> nodes = [0, 1, 2, 3] >>> edges = [(0, 1), (1, 0), (1, 0), (2, 1), (3, 1)]
>>> list(nx.edge_dfs(nx.Graph(edges), nodes)) [(0, 1), (1, 2), (1, 3)]
>>> list(nx.edge_dfs(nx.DiGraph(edges), nodes)) [(0, 1), (1, 0), (2, 1), (3, 1)]
>>> list(nx.edge_dfs(nx.MultiGraph(edges), nodes)) [(0, 1, 0), (1, 0, 1), (0, 1, 2), (1, 2, 0), (1, 3, 0)]
>>> list(nx.edge_dfs(nx.MultiDiGraph(edges), nodes)) [(0, 1, 0), (1, 0, 0), (1, 0, 1), (2, 1, 0), (3, 1, 0)]
>>> list(nx.edge_dfs(nx.DiGraph(edges), nodes, orientation="ignore")) [(0, 1, 'forward'), (1, 0, 'forward'), (2, 1, 'reverse'), (3, 1, 'reverse')]
>>> list(nx.edge_dfs(nx.MultiDiGraph(edges), nodes, orientation="ignore")) [(0, 1, 0, 'forward'), (1, 0, 0, 'forward'), (1, 0, 1, 'reverse'), (2, 1, 0, 'reverse'), (3, 1, 0, 'reverse')]
相關用法
- Python NetworkX edge_disjoint_paths用法及代碼示例
- Python NetworkX edge_subgraph用法及代碼示例
- Python NetworkX edge_connectivity用法及代碼示例
- Python NetworkX edge_bfs用法及代碼示例
- Python NetworkX edmonds_karp用法及代碼示例
- Python NetworkX eulerian_circuit用法及代碼示例
- Python NetworkX equitable_color用法及代碼示例
- Python NetworkX expected_degree_graph用法及代碼示例
- Python NetworkX effective_size用法及代碼示例
- Python NetworkX eulerize用法及代碼示例
- Python NetworkX eigenvector_centrality_numpy用法及代碼示例
- Python NetworkX eigenvector_centrality用法及代碼示例
- Python NetworkX erdos_renyi_graph用法及代碼示例
- Python NetworkX empty_graph用法及代碼示例
- Python NetworkX equivalence_classes用法及代碼示例
- Python NetworkX estrada_index用法及代碼示例
- Python NetworkX negative_edge_cycle用法及代碼示例
- Python NetworkX voronoi_cells用法及代碼示例
- Python NetworkX numerical_edge_match用法及代碼示例
- Python NetworkX inverse_line_graph用法及代碼示例
- Python NetworkX LFR_benchmark_graph用法及代碼示例
- Python NetworkX write_graph6用法及代碼示例
- Python NetworkX DiGraph.__contains__用法及代碼示例
- Python NetworkX average_degree_connectivity用法及代碼示例
- Python NetworkX single_source_dijkstra_path_length用法及代碼示例
注:本文由純淨天空篩選整理自networkx.org大神的英文原創作品 networkx.algorithms.traversal.edgedfs.edge_dfs。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。