2013-01-11 111 views
0

假設我有一個trie數據結構保存了一些字符串。爲了在樹中查找一個字符串,我將從根開始,並按照標有字符串相應字符的指針順序,直到我到達給定節點爲止。將樹轉換爲反轉樹嗎?

現在假設我想建立的同組串,在那裏,而不是通過與第一字符開始查找字符串,我會查找字符串通過與最後開始「反向索引樹」字符。

是否有一個有效的轉向嘗試反向嘗試的算法?在最壞的情況下,我總是可以列出樹中的所有字符串,然後將它們一次一個地插入到反向樹中,但似乎可能會有更好,更聰明的解決方案。

+1

反向trie與原始trie沒有明顯的關係,所以可能沒有更好的解決方案。 –

回答

1

但是,如果您的排序標準基於字符串的反向,則trie中的節點基本上是隨機排列的。也就是說,給定序列[aardvark, bat, cat, dog, elephant, fox],它們按字母順序排列,反轉這些單詞不會給你順序[xof, tnahpele, god, tac, tab, kravdraa]

換句話說,沒有比建立反向特里結構更「聰明的解決方案」。