Если ваш файл статичен, то есть вам не нужно время от времени вставлять в него слова, но вы можете создавать его «все сразу», тогда вам нужна структура DAFSA , что означает «Направленный ациклический конечный государственный автомат». В случае, если ваша задача динамична, то есть вам нужно будет вставить в нее новые слова, DAFSA по-прежнему ответит, но алгоритмы намного сложнее.
Это в основном сжатая версия дерева, она имеет такую же скорость доступа, но в общем случае требует гораздо меньше места.
Алгоритмы преобразования дерева в DAFSA (иногда называемые DAWG для направленного ациклического графа слов) не так просты, как алгоритмы, которые просто строят дерево, но они понятны. Вы должны найти все, что вам нужно здесь .