2013-01-11 155 views
0

假设我有一个trie数据结构保存了一些字符串。为了在树中查找一个字符串,我将从根开始,并按照标有字符串相应字符的指针顺序,直到我到达给定节点为止。将树转换为反转树吗?

现在假设我想建立的同组串,在那里,而不是通过与第一字符开始查找字符串,我会查找字符串通过与最后开始“反向索引树”字符。

是否有一个有效的转向尝试反向尝试的算法?在最坏的情况下,我总是可以列出树中的所有字符串,然后将它们一次一个地插入到反向树中,但似乎可能会有更好,更聪明的解决方案。

+1

反向trie与原始trie没有明显的关系,所以可能没有更好的解决方案。 –

回答

1

但是,如果您的排序标准基于字符串的反向,则trie中的节点基本上是随机排列的。也就是说,给定序列[aardvark, bat, cat, dog, elephant, fox],它们按字母顺序排列,反转这些单词不会给你顺序[xof, tnahpele, god, tac, tab, kravdraa]

换句话说,没有比建立反向特里结构更“聪明的解决方案”。