Prefix pesquisa em uma árvore de raiz / patricia trie

No momento, estou implementando uma árvore de raiz / patricia trie (como você quiser chamar). Eu quero usá-lo para pesquisas de prefixo em um dicionário em uma peça de hardware severamente insuficiente. Deveria funcionar mais ou menos como o preenchimento automático, i. e mostrando uma lista de palavras com as quais o prefixo digitado correspond

A minha implementação é baseada neste artigo, mas o código não inclui pesquisas de prefixo, embora o autor diga:

[...] Digamos que você queira enumerar todos os nós que possuem chaves com um prefixo comum "AB". Você pode realizar uma primeira pesquisa profunda começando nessa raiz, parando sempre que encontrar as arestas traseira

Mas não vejo como isso deve funcionar. Por exemplo, se eu construir uma árvore de raiz com estas palavras:

doenç
imaginári
imaginaçã
Imagin
imitaçã
imediat
imediatament
imens
dentr

Receberei exatamente a mesma "melhor correspondência" para os prefixos "i" e "in", de modo que me parece difícil reunir todas as palavras correspondentes apenas atravessando a árvore dessa melhor correspondênci

Adicionalmente, existe ummplementação de árvore @radix em Java que possui uma pesquisa de prefixo implementada em RadixTreeImpl.java. Esse código verifica explicitamente todos os nós (a partir de um determinado nó) em busca de uma correspondência de prefixo - na verdade, compara byte

Alguém pode me indicar uma descrição detalhada da implementação de uma pesquisa de prefixo em árvores de raiz? O algoritmo usado na implementação Java é a única maneira de fazer isso?

questionAnswers(4)

yourAnswerToTheQuestion