data Edge v = Edge {source :: v, target :: v}“graph”类型表示有向图。data Graph v = Graph {nodes :: Set v, edges :: Set (Edge v)}函数'isDAG‘测试一个图是否是无圈的是否为一个森林(一组树)
isForest :: Ord v => DAG
我想知道为什么所有有向无环图都有一个以上的拓扑排序顺序。 我在谷歌上搜索过,我说大多数都是轻而易举地通过了他们至少有一个topo排序的事实。但是我在思考如何实现一个单链表: A -> B -> C -> D 这可能意味着,从技术上讲,拓扑端口只有一种方式可以通过- D,C,B,A… 然而,可能的情况是,这不是一个有向无环图,但我不确定如何反驳这种情况,因为它是有向的(A到B等),<