1

いくつかの文字列を保持するtrieデータ構造があるとします。トライで文字列を検索するには、ルートから開始し、特定のノードに到達するまで、文字列の適切な文字でラベル付けされたポインターを順番にたどります。

ここで、同じ文字列セットに対して「逆トライ」を作成したいとします。最初の文字から文字列を検索する代わりに、最後の文字から文字列を検索します。

試行を逆試行に変える効率的なアルゴリズムはありますか? 最悪の場合、トライ内のすべての文字列を常に一覧表示してから、一度に 1 つずつ逆トライに挿入することもできますが、より優れた、より賢い解決策があるようです。

4

1 に答える 1

2

ただし、順序付け基準が文字列の逆に基づいている場合、トライのノードは基本的にランダムな順序になります。つまり[aardvark, bat, cat, dog, elephant, fox]、アルファベット順のシーケンスが与えられた場合、単語を逆にしてもシーケンスは得られません[xof, tnahpele, god, tac, tab, kravdraa]

言い換えれば、リバーストライを構築するよりも「賢い解決策」はありません。

于 2013-01-11T05:18:14.537 に答える