2016-08-09 12 views
-2

Ziel ist es, eine Trie Datenstruktur zu erstellen. Ich hatte Tree::Trie gesehen und es benutzt. Er konvertiert Daten erst nach dem Lesen der Datei (Datenbank) in Trie-Struktur. Dies macht die Verarbeitung langsam, da jedes Mal, wenn eine Suche benötigt wird, ganze Daten in Trie umgewandelt werden.Erstellen Sie einen Trie in Perl

Gibt es einen Weg, wo ich einen Trie für einmal erstellen und es die Trie-Struktur für Nachschlagezwecke verwenden kann.

+1

Wenn Sie sich die [Quellen] (http://cpansearch.perl.org/src/AVIF/Tree-Trie-1.5/Trie.pm) von 'Tree :: Trie 'ansehen, werden Sie sehen, dass Daten werden dem Trie hinzugefügt, sobald Sie sie hinzufügen (Sie können 'add' aufrufen' _add_internal'). Und die Dokumentation sagt so viel aus. – Dada

Antwort

4

Wenn man sich die Übersicht sehen wieder in der Tree::Trie Dokumentation, die Sie verbunden sind, werden Sie sehen, dass die Trie nur einmal erstellt wird (my($trie) = new Tree::Trie; - obwohl dies als my $trie = Tree::Trie->new; geschrieben werden sollte anstatt Dativobjekt Notation) und Daten wird nur einmal hinzugefügt ($trie->add(...);), und dann wird der Trie für mehrere Suchvorgänge verwendet (my(@all) = $trie->lookup(""); und my(@ms) = $trie->lookup("m");).

Die Art, den Trie einmal zu erstellen und dann für Nachschlagezwecke zu verwenden, besteht darin, einfach die Variable $trie (im Bereich) beizubehalten und sie für alle Nachschlagevorgänge zu verwenden, anstatt jedes Mal neue Instanzen zu erstellen.

Wenn diese Antwort für Sie nicht nützlich ist, aktualisieren Sie bitte Ihre Frage, um ein kleines, eigenständiges, lauffähiges Beispielprogramm einzubinden, das zeigt, wie Sie Tree::Trie verwenden und wir Ihnen zeigen können, wie Sie es modifizieren wird nur einmal gebaut.

+0

Ich möchte die Datenbank im Trie-Format gespeichert werden. So etwas wie die Datenbank wird in Trie-Struktur konvertiert, was bedeutet, dass die Datenbank einer Objektdatei ähnelt. In einfachen Worten gibt es einen Weg, auf dem ich die Datenbank kompilieren kann, so dass eine Trie-Strukturierte Objektdatei erzeugt wird, die zum Nachschlagen verwendet werden kann. – Nagaraju