繁体   English   中英

Haskell Prim的算法

[英]Haskell Prim's Algorithm

有谁知道change prim的算法如何处理未连接的图? 我知道我必须使用森林,但是我不知道如何在Haskell中实现它。

`这就是我得到的

prim for            = prim' [n] ns [[]]
    where (n:ns)    = nodes for
        es          = edges for
        prim' t [] mst        = mst
        prim' t (r:rs) (x:xs) = let m = minimum[(c,u',v'| u <-t, v <- (r:rs), (u,v,c) <- es]
                    m | m == Nothing    = prim' (r:t) rs ([]:mst)
                      | otherwise       = prim' (v:t) (delete v' r) ((m:x):xs)

Prim的算法找到一个MST,但是如果未连接图形,则不存在任何MST。 如果具有| V |,则可以检查您的树是否为生成树。 -1个元素。

很容易找到图形的连接部分。 分别为每个连接的子图运行Prim的算法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM