トライ木(接頭辞ツリー)

単語を追加すると共通接頭辞を共有して枝が伸び、文字を打つと該当パスが点灯します O(長さ) で検索・補完。

英単語A
通常ノード 単語の終端 探索パス点灯 候補(部分木)
登録単語数
ノード数(節点)
探索結果
照合した文字数(手数)
」で始まる候補(部分木に含まれる単語)
トライ木(根 ● から枝が伸びる。各辺が1文字を表す)
トライ木(trie / 接頭辞ツリー)は、文字列を1文字ずつ枝に対応させて木に詰め込むデータ構造です。 根から各ノードへのパスがそのまま接頭辞になり、同じ書き出しの単語は枝を共有します。
だから carcardcatc→a の部分を共有し、そこから枝分かれします。 検索は文字を1つずつ辿るだけなので、登録数が何万あっても単語の長さ L に比例した手数 O(L) で終わります。
単語を追加して枝の共有を観察し、文字列を打って接頭辞の点灯その先の候補(オートコンプリート)を体感しましょう。

いま何が起きている?

ここがポイント