当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NetworkX lexicographical_topological_sort用法及代码示例


本文简要介绍 networkx.algorithms.dag.lexicographical_topological_sort 的用法。

用法:

lexicographical_topological_sort(G, key=None)

返回按字典序拓扑排序的节点生成器。

拓扑排序是节点的非唯一排列,使得从 u 到 v 的边意味着 u 在拓扑排序顺序中出现在 v 之前。

参数

GNetworkX 有向图

有向无环图 (DAG)

key函数,可选

此函数将节点映射到键以解决排序顺序中的歧义。默认为身份函数。

生成(Yield)

节点

以词典拓扑排序顺序生成节点。

抛出

NetworkXError

拓扑排序仅针对有向图定义。如果图 G 是无向的,则会引发 NetworkXError

NetworkXUnfeasible

如果 G 不是有向无环图 (DAG),则不存在拓扑排序并引发 NetworkXUnfeasible 异常。如果在处理返回的迭代器时更改G,也会引发此问题

RuntimeError

如果在处理返回的迭代器时更改了 G

注意

该算法基于《算法导论:一种创造性方法》[1]中的说明和证明。

参考

1

Manber, U. (1989). Introduction to Algorithms - A Creative Approach. Addison-Wesley.

例子

>>> DG = nx.DiGraph([(2, 1), (2, 5), (1, 3), (1, 4), (5, 4)])
>>> list(nx.lexicographical_topological_sort(DG))
[2, 1, 3, 5, 4]
>>> list(nx.lexicographical_topological_sort(DG, key=lambda x: -x))
[2, 5, 1, 4, 3]

相关用法


注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.algorithms.dag.lexicographical_topological_sort。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。