相关疑难解决方法(0)

有没有办法在Haskell中表示静态数据?或者在Haskell中是否还有其他优雅的DFS遍历算法?

我试图使用递归算法构造DFS树.

伪代码是:

DFF(G)
Mark all nodes u as unvisited
while there is an unvisited node u do 
    DFS(u)
Run Code Online (Sandbox Code Playgroud)

.

DFS(u)
Mark u as visited
for each v in u's neighbor do 
    if v is not marked
        DFS(v)
Run Code Online (Sandbox Code Playgroud)

虽然我可以通过为un/visited节点构建某种数据结构,以简单的方式在命令式语言中轻松实现这一点,为Haskell分配动态分配或某种声明,但由于Haskell的纯粹性阻止了我,所以不可能这样做传递参数时更改数据.

data Graph a = Graph [(a,[a])] deriving (Ord, Eq, Show)
data Tree a = Node a [Tree a] deriving (Ord, Eq, Show)

type Point = (Int, Int)
type Edges = [Point]
type Path = [Point]

pathGraphFy :: Graph Point -> Point -> …
Run Code Online (Sandbox Code Playgroud)

algorithm haskell depth-first-search

6
推荐指数
1
解决办法
689
查看次数

标签 统计

algorithm ×1

depth-first-search ×1

haskell ×1