Autocomplete mit einem trie
Arbeite ich an einer autocompletion Skript und dachte über die Verwendung eines trie. Mein problem ist, ich will alles, was, die Spiele zurückgegeben werden. So zum Beispiel, tippe ich in dem Brief r
ich möchte alle Einträge beginnend mit r
zurückgegeben werden. Dann werden alle Einträge, beginnend mit re
etc. Ist das machbar mit einem trie und wie würde es funktionieren. Auch, wenn es eine bessere Möglichkeit gibt bin ich für Vorschläge offen. Der Grund warum ich Frage ist, wie es scheint, es wäre kompliziert, und eine ganze Menge der Verarbeitung, um alle Knoten aus sagen, die r
Zweig.
Und ja, ich kann das Rad neu erfinden, aber ich möchte lernen, wie es funktioniert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann man auf jeden Fall tun Sie es mit einem trie. Hier ist etwas code, ich warf zusammen, dass können Sie in die richtige Richtung:
Nutzung
Ich sage ja nicht, das ist irgendwo in der Nähe der beste oder die effizienteste Weg, aber es sollte Sie wenigstens schon in die richtige Richtung.
Hier ein jsfiddle zeigt, dass es funktioniert: https://jsfiddle.net/es6xp8h9/
Bezüglich der Zeit, zu entdecken, Elemente in eine root Hinweis,, falls Sie tun dies für eine AutoVervollständigen, ist es wahrscheinlich, dass Sie nicht zurückkehren zu viele Ergebnisse pro 'match'. Wenn Sie wollte trade-off Platz für die Geschwindigkeit, die Sie speichern könnte Verweise auf die " top-n Objekte auf jedem der Knoten. Dies ist natürlich mehr Zeit erforderlich sein würde, auf update