在perl中创建一个trie

时间:2016-08-09 05:27:24

标签: perl trie

目标是创建一个trie数据结构。我见过Tree::Trie并使用它。它只在读取文件(数据库)后才将数据转换为trie结构。因此,每次需要查找时,这将使处理变慢,将整个数据转换为trie。

有没有办法可以创建一次trie并使用trie结构进行查找。

1 个答案:

答案 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只生成一次。