Использование (несжатого) Trie
Я изучаю различные структуры данных с префиксным поиском, такие как Tries и Radix Tries (Patricia Tries).
На данный момент у меня есть четкое понимание как попыток, так и основательных попыток, а также хорошее понимание их вариантов использования.
Тем не менее, один вопрос возникает у меня: есть ли преимущество в использовании обычного дерева по сравнению со сжатым деревом (например, радикальным деревом)?
Обычный три прост в реализации: он хранит один символ на узел. Патриция Три более сложна в реализации: она "сжата" в том смысле, что каждый узел содержит всю строку, а сравнение префиксов выполняется с использованием побитового сопоставления.
Поскольку Patricia Trie более экономно использует пространство и не жертвует скоростью поиска, есть ли какой-либо вариант использования обычного (несжатого) Trie, где каждый узел содержит одну букву?
Единственный вариант использования, о котором я могу подумать, это то, что ваши "строки" - это нечто иное, чем обычные строки символов (например, массивы более сложных объектов), и поэтому их нельзя сравнивать, используя побитовые сравнения.
Есть ли другой вариант использования для обычного (несжатого) Trie?
2 ответа
Я предполагаю, что их просто легче понять и сделать анализ / разработку алгоритмов проще. Таким образом, они идеально подходят для образовательных целей до введения сжатых деревьев.