目标是创建一个trie数据结构。我见过Tree::Trie
并使用它。它只在读取文件(数据库)后才将数据转换为trie结构。因此,每次需要查找时,这将使处理变慢,将整个数据转换为trie。
有没有办法可以创建一次trie并使用trie结构进行查找。
答案 0 :(得分:4)
如果您再次查看链接到的Tree::Trie
文档中的概要,您将看到trie仅创建一次(my($trie) = new Tree::Trie;
- 尽管这应该写为{{1}而不是使用间接对象表示法),数据只添加一次(my $trie = Tree::Trie->new;
),然后trie用于多次查找($trie->add(...);
和my(@all) = $trie->lookup("");
)。
创建trie然后用它进行查找的方法是简单地保留my(@ms) = $trie->lookup("m");
变量(在范围内)并将其用于所有查找而不是创建新的{{1}每次都是实例。
如果这个答案对您没有用,请更新您的问题以包含一个小型的,自包含的,可运行的示例程序,说明您如何使用$trie
,我们可以向您展示修改它以便trie只生成一次。