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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。