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


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。