将树转换为反转树?

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

现在假设我想为同一组字符串构建一个“reverse trie”,而不是从第一个字符开始查找字符串,而是从最后一个字符开始查找字符串。

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


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

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

链接地址: http://www.djcxy.com/p/61503.html

上一篇: Converting a trie into a reverse trie?

下一篇: c++