三分探索木
三分探索木(さんぶんたんさくぎ、英: ternary search tree)は、トライ木の各ノードを二分探索木として表現したデータ構造である。各ノードは文字列中の文字と以下の三つの子ノードを持つ。
その文字の代わりに、より小さな文字を指す左ノード
その文字の代わりに、より大きな文字を指す右ノード
その文字の次の文字を指す中央ノード
他のトライ木構造と同じく、三分探索木の各ノードは格納された文字列の接頭辞に対応している。中央ノードに格納された木は、そこに至るまでのノードを共通接頭辞として持つ。
上記の三分探索木は "as", "at", "cup", "cute", "he", "i", "us" が値として格納されている。三分探索木から値を取得するには次のような操作を行う。
頂点ノードから「子に中央ノードを持たないノード」までを辿り、その経路を保存する "c-a-t-s" "c-a-t" "c-u-t-p" "c-u-t-e" "c-h-e" "c-h-u-i" "c-h-u-s"