PassFront
  1. PassFront
  2. База знаний
  3. Деревья и кучи

Что такое префиксное дерево (trie) и где его применяют?

Деревья и кучи

Trie — дерево, где каждое ребро помечено символом, а путь от корня задаёт строку: вставка, поиск и проверка префикса стоят O(L), где L — длина ключа, независимо от числа хранимых слов.

Устройство

  • Узел: массив или словарь детей по символам плюс флаг «здесь заканчивается слово».
  • Общие префиксы хранятся один раз: «cat» и «car» делят путь «ca».

Операции

  • Вставка и поиск: спуск по символам ключа за O(L) — хешировать всю строку не нужно.
  • Автодополнение: спустились по префиксу и собрали всё поддерево.

Цена

Память: на каждый узел приходится массив или словарь потомков — расточительно. Компактные варианты (сжатое trie, radix tree) сливают цепочки из одного ребёнка в одно ребро.

Применения

Автокомплит, словари с префиксными запросами, longest prefix match в маршрутизации, задачи «все слова на поле букв».

Коротко для собеседования

Trie хранит строки как пути по символам, поэтому поиск и проверка префикса зависят только от длины ключа, а общие префиксы хранятся один раз. Он идеален для автодополнения и longest prefix match, но расточителен по памяти — на практике часто берут сжатый radix tree.

Другие вопросы раздела