[解決済み] サフィックスの木とトライ。その違いとは?
質問
について読んでいます。
Tries
一般に接頭辞ツリーと呼ばれるもので
Suffix Trees
.
のコードを見つけたものの
Trie
の例は見つかりませんでした。
Suffix Tree
. また、私は
Trie
を構築するコードは
Suffix Tree
の場合と同じです。唯一の違いは、前者では接頭辞を、後者では接尾辞を格納することです。
これは本当でしょうか?誰か私の頭の中でこれをクリアにするのを助けることができますか?コード例があれば、とても助かります!
どのように解決するのですか?
サフィックスツリーはトライの上に構築されたデータ構造とみなすことができます。トライに文字列そのものを追加する代わりに、その文字列のすべての可能なサフィックスを追加することになります。例えば、文字列 バナナ という文字列をサフィックスツリーでインデックスしたい場合、以下のような文字列でトライを構築することになります。
banana
anana
nana
ana
na
a
これが終わると、任意のn-gramを検索して、それがインデックスされた文字列の中に存在するかどうかを見ることができます。言い換えれば、n-gram検索は文字列のすべての可能な接尾辞の前方一致検索となります。
これは接尾辞ツリーを構築する最も単純で最も遅い方法です。このデータ構造には、空間と構築時間のいずれかまたは両方を改善する、よりファンシーなバリエーションが多数あることが判明しています。私はこの分野に詳しくないので概要を説明することはできませんが、まずは サフィックス配列 またはこのクラス 高度なデータ構造 (講義16と18)を受講してください。
この 答え は、このデータ構造のバリエーションを説明する素晴らしい仕事も行っています。
関連
-
[解決済み】Dijkstraのアルゴリズムが負の重みのエッジに対して機能しないのはなぜですか?
-
[解決済み] ポイントルック アット ポイント
-
[解決済み] 最小スパニングツリーは負の重みを恐れているのか?
-
[解決済み] 2進数が3で割れているかどうかを知るには?
-
[解決済み] log(n!)=Θ(n-log(n))でしょうか?
-
[解決済み] バックトラックと深さ優先探索の違いは何ですか?
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] ゲーム「2048」の最適なアルゴリズムとは?
-
[解決済み] 木の深さと高さはどう違うのですか?
-
[解決済み] Dijkstraのアルゴリズムによる負の重み付け
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】クイックソートとヒープソートの比較
-
[解決済み] ポイントルック アット ポイント
-
[解決済み] DFS-Forest Componentとは?
-
[解決済み] 定数時間や対数時間よりも、nやnlog(n)の方が良いのでしょうか?
-
[解決済み] このHeld-Karp TSP Pseudocodeの説明をお願いします。
-
[解決済み] 複雑さ O(log(n)) は O(sqrt(n)) と同等か?
-
[解決済み] T = {<M> | Mはwを受け入れるときはいつでも$w^R$を受け入れるTMである}とする。Tが決定不可能であることを示せ
-
[解決済み] 整数の絶対値の計算方法
-
[解決済み] 与えられた数列の中に現れない最小の正の整数を求めよ。
-
[解決済み] 検索語句の上位10位を見つけるアルゴリズム