【发布时间】:2014-12-27 17:15:41
【问题描述】:
在使用长字符串时,我在 Haskell 中创建后缀树时遇到了一个相当大的问题。
一些构造算法(如 Ukkonen 算法的 this 版本)需要在节点之间建立链接。这些链接“指向”树中的一个节点。在 Java、C# 等命令式语言中,这不是问题,因为引用类型。
有没有办法在 Haskell 中模拟这种行为?还是有完全不同的选择?
【问题讨论】:
-
当所有其他方法都失败时,您可以使用
ST和STRefs 编写有状态算法。然后你可以runST得到你的纯后缀树。 -
为什么 Ukkonen 的算法最近在 Haskell 标签中如此受欢迎,还有另一个问题,虽然没有正确的答案 - 只有 cmets 中的提示:stackoverflow.com/questions/19370296/…
-
您只需要有向无环图吗?您可以使用 this 包中的图表。
-
构建自引用结构的一个标准技巧称为“打结”。您可能会发现此问题的答案很有帮助:How do you represent a graph in Haskell?。
-
哦,还有一个unanswered question on a similar topic,里面有一些你可能会觉得有用的cmets。
标签: haskell suffix-tree