arunkumar9t2 / trie

en java-implementering av prefixet Trie-datastrukturen.

introduktion

försök är karta som beställda trädbaserade datastrukturer som ger snabb sökning av ordern O(k) där k är längden på nyckeln. Läs mer om trie här.

Motivation

detta byggdes ursprungligen för att användas i min Android-app, T9 App Launcher för att snabbt söka igenom listan över installerade applikationer och starta dem.

offentliga API: er

för närvarande finns det 3 offentliga implementeringar som kan väljas från.

  • MapTrie: HashMap backas Trie genomförande.
  • SortedTrie: TreeMap backas Trie genomförande som returnerar förslag och värdet är stigande sorteringsordning.
  • T9Trie: Helper genomförande för att lagra och hämta förslag för T9 sekvens.

exempel användning

skapa en enkel trie och få förslag.

final MapTrie<String> trie = new MapTrie<>();trie.insert("Hello", "Hello");trie.insert("Help", "Help");trie.insert("Has", "Has");trie.insert("Have", "Have");trie.insert("Had", "Had");trie.insert("Hadn't", "Hadn't"); // Print to stdouttrie.print();

ovanstående print() – samtal skulle skriva ut trädstrukturen så här.

└── h ├── e │ └── l │ ├── l │ │ └── o'Hello │ └── p'Help └── a ├── s'Has ├── v │ └── e'Have └── d'Had └── n └── ' └── t'Hadn't

låt oss nu försöka hitta alla ord som börjar med ha. Kom ihåg att tangenterna som standard är skiftlägeskänsliga.

List<String> suggestions = trie.getValueSuggestions("ha");System.out.print(suggestions.toString());

detta kommer att skriva ut till konsolen. Värdet lämnas orört.

bidrag

om du är en utvecklare och vill bidra kan du överväga att göra en pull begäran. Jag skulle uppskatta all kritik när det gäller kod eller genomförande i allmänhet.

licens

detta projekt är licensierat under Apache 2.0 licens.

Lämna ett svar

Din e-postadress kommer inte publiceras.