arunkumar9t2 / trie

o implementare java a structurii de date Trie Prefix.

Introducere

încercările sunt structuri de date bazate pe arbori ordonate care oferă căutarea rapidă a ordinului O(k) unde k este lungimea cheii. Citiți mai multe despre trie aici.

motivație

aceasta a fost inițial construit pentru a utiliza în aplicația mea Android, T9 App Launcher pentru a căuta rapid prin lista de aplicații instalate și să le lanseze.

API-uri publice

în prezent, există 3 implementări publice din care pot fi alese.

  • MapTrie: HashMap implementarea trie susținută.
  • SortedTrie: TreeMap implementarea Trie susținută care returnează sugestiile și valoarea este ordinea de sortare ascendentă.
  • T9Trie: punerea în aplicare Helper pentru a stoca și de a prelua sugestii pentru secvența T9.

exemplu de utilizare

crearea unui trie simplu și obținerea de sugestii.

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();

apelul de mai sus print() ar imprima structura arborelui astfel.

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

acum să încercăm să găsim toate cuvintele care încep cu ha. Amintiți-vă că, în mod implicit, tastele sunt insensibile la majuscule.

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

aceasta va imprima pe consolă. Valoarea este lăsată neatinsă.

contribuție

dacă sunteți un dezvoltator și ar dori să contribuie Vă rugăm să ia în considerare a face o cerere de tragere. Aș aprecia orice critică în ceea ce privește codul sau punerea în aplicare în general.

Licență

acest proiect este licențiat sub Licența Apache 2.0.

Lasă un răspuns

Adresa ta de email nu va fi publicată.