小编Dor*_*der的帖子

如何反转haskell中的图形?

对于练习我需要反转图形(反转所有边缘),但我没有得到任何结果.所以我需要一些帮助.

我知道你可能不想为我解决这个问题,所以这不是我要求的.我只需要一些建议......

所以要达到它:

data Graph a = G
  { nodes :: [a]
  , successors :: a -> [a] }

reverseGraph :: Eq a => Graph a -> Graph a
Run Code Online (Sandbox Code Playgroud)

图表必须包含以下参数:节点列表和定义后继者的函数.此函数具有以下类型: a -> [a]

例如:

graph1 :: Graph Int
graph1 = G [1..6] $ \case   1 -> [2,3]
                            2 -> []
                            3 -> [1,4,6]
                            4 -> [1]
                            5 -> [3,5]
                            6 -> [2,4,5]
Run Code Online (Sandbox Code Playgroud)

反转图表将是:

reverseGraph graph1 ~>
    2 -> [1,6]
    3 -> [1,5]
    1 -> [3,4]
    4 -> [3,6]
    6 -> …
Run Code Online (Sandbox Code Playgroud)

haskell graph

4
推荐指数
1
解决办法
85
查看次数

标签 统计

graph ×1

haskell ×1