Haskell库中是否存在这种数据结构?我做了一些搜索,但找不到有用的东西。我想使用现有的类型而不是定义自己的类型 - 它看起来应该在那里。带边缘信息的Haskell树
data MyTree e n = Node { rootLabel :: n
, subForest :: Map e (MyTree e n)
}
的想法是,它非常类似于Data.Tree,但边缘可以保存信息以及节点。
如果你有一个通过树(类型[e])的路径,你可以在O(log(n))中找到rootLabel(类型n)。据我所知,你不能用Data.Tree来做到这一点,因为你必须扫描每个节点的子节点,以查找它是否是路径前进的节点。这是因为Data.Tree的subForest的类型是[Tree a]。
特别,我很感兴趣的是暴露了一个功能类似于一个类型的实现:
getNextLevel :: e -> MyTree e n -> MyTree e n
,将下潜更深一层的树,给定边穿越。
Data.Trie假定e的类型是ByteString;我希望有一些更一般的东西= \ – Litherum 2012-04-08 01:10:36
@Litherum我的计数,有十二个不同的软件包提供尝试,并且只有其中一个专门用于'ByteString'。也许你应该继续寻找。 – 2012-04-08 01:21:20