arunkumar9t2/trie

接頭辞Trieデータ構造体のjava実装。

はじめに

試行は、順序O(k)の高速検索を提供する順序付きツリーベースのデータ構造のようなマップです。kはキーの長さです。 Trieについての詳細はこちらをご覧ください。

動機

これは最初に私のAndroidアプリで使用するために構築されました,t9App Launcherインストールされているアプリケーションのリストを迅速に検索して起動

パブリックApi

現在、選択できる3つのパブリック実装があります。

  • MapTrie: HashMap trieの実装を支援しました。
  • SortedTrie: TreeMap 提案と値を返すbacked trie実装は昇順のソート順です。
  • T9Trie: T9シーケンスの候補を格納および取得するためのヘルパー実装。

使用例

単純なトライを作成し、提案を取得します。

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

上記のprint()呼び出しは、このようなツリー構造を出力します。

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

次に、haで始まるすべての単語を検索してみましょう。 デフォルトでは、キーは大文字と小文字を区別しないことに注意してください。

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

これによりがコンソールに出力されます。 値は変更されません。

Contribution

あなたが開発者であり、貢献したい場合は、プルリクエストを行うことを検討してください。 私は一般的にコードや実装に関する批判をいただければ幸いです。

License

このプロジェクトはApache2.0licenseの下でライセンスされています。

コメントを残す

メールアドレスが公開されることはありません。