【发布时间】:2011-11-03 23:36:47
【问题描述】:
trie的类型是
data Trie a = TrieNode (Maybe a) [(Char, Trie a)]
deriving Show
我想编写一个接收键值对和前缀树的函数。 然后我希望它返回包含键值对的符号表。如果键已存在,则新值应替换旧值。
例子:
trieInsert ("abc",10) emptyTrie ==
TrieNode Nothing [
('a', TrieNode Nothing [
('b', TrieNode Nothing [
('c', TrieNode (Just 10) [])])])]
我还希望能够在 trie 中搜索并找到以某个前缀开头的键。 示例:
findTrie "c" oneTrie -> ["at","in"]
findTrie "ca" oneTrie -> ["z","r"]
【问题讨论】:
-
Tree 和 Trie 是不同的数据结构。您可以编辑帖子以便不使用 trie 而不是树,反之亦然?这是作业吗?如果是 - 添加作业标签
-
请注意,您的示例是错误的:
findTrie "c"的结果必须包含findTrie "ca"的结果。所以第一行应该是findTrie "c" oneTrie -> ["at", "in", "z", "r"]
标签: search haskell prefix trie