DEV//UNIT
← Алгоритмыdata-structures

Trie (префиксное дерево)

Слова как пути от корня: общие префиксы хранятся один раз.

время O(длины слова)память O(алфавит × узлы)уровень: начальный
Что происходит сейчас0/0
Нажмите Play, чтобы запустить сценарий
TypeScript — активная строка подсвечена шагом
1class Trie {
2 private root: Node = { char: '·', children: new Map<string, Node>(), end: false }
3
4 insert(word: string): void {
5 let node = this.root
6 for (const ch of word) {
7 let next = node.children.get(ch)
8 if (next === undefined) {
9 next = { char: ch, children: new Map(), end: false }
10 node.children.set(ch, next)
11 }
12 node = next
13 }
14 node.end = true
15 }
16
17 has(word: string): boolean {
18 let node = this.root
19 for (const ch of word) {
20 const next = node.children.get(ch)
21 if (next === undefined) return false
22 node = next
23 }
24 return node.end
25 }
26}
27
28interface Node {
29 char: string
30 children: Map<string, Node>
31 end: boolean
32}

Проблема

Слова как пути от корня: общие префиксы хранятся один раз.

Что вы видите

Дерево букв: «cat» и «code» делят узел «c»; конец слова помечен.

Как это работает

Все операции за длину слова. Автодополнение, словари, спелл-чекеры: найти все слова с префиксом — спуститься до него.

Пошаговый разбор

  1. 01

    Вставка

    Спуск по буквам, недостающие узлы создаются.

  2. 02

    Общий префикс

    Переиспользуется без дублирования.

  3. 03

    Поиск

    Тот же спуск + флаг конца слова.

Complexity и ограничения

time
O(длины слова)
space
O(алфавит × узлы)

См. complexity в шапке страницы.

Edge cases

  • Пустой вход

    Корректно завершается без лишних шагов.

  • Вырожденный случай

    Минимум работы — сразу ответ.

Где встречается в реальности

Продукт

Классический приём в реальных системах.

Собеседования

Стандартный вопрос на понимание структуры.

Связанные алгоритмы

Shorts

«Как устроено автодополнение: дерево слов»

Тот же сценарий StepSequence в вертикальной композиции — с safe zones и записью WebM ниже на странице.

Shorts 9:16

Вертикальная композиция строится той же последовательностью шагов, что и страница: safe zones отмечены пунктиром (там живёт UI платформ), биты сценария подсвечиваются по прогрессу. Кнопка записи сохраняет WebM — детерминированная StepSequence даёт воспроизводимый ролик без монтажа.

Как устроено автодополнение: дерево слов
Нажмите Play
Бит 1/6 · 0–2 с
Hook
script-setup.ru/algorithms/trie