Что такое Trie?
Урок 2 из 14 курса Префиксные деревья (Trie) — Серия «Структуры данных» №8 на Coddy.
Префиксное дерево (или trie, от англ. retrieval — «поиск») — это древовидная структура данных, предназначенная для хранения и поиска строк по их символам. Каждое ребро в дереве помечено одним символом, а каждый путь от корня вниз к помеченному узлу образует одно из хранящихся слов.
Такая структура делает работу с префиксами чрезвычайно быстрой. Проверка того, содержит ли дерево какое-либо слово, начинающееся с "car", — это всего лишь три операции поиска символа от корня, независимо от того, сколько тысяч слов хранится в структуре. Префиксные деревья лежат в основе таких функций, как автодополнение, проверка орфографии и таблицы маршрутизации IP.
Каждый узел (node) в дереве хранит два элемента состояния:
children: отображение (map) символа на следующий объектTrieNode.isEndOfWord: флаг, который принимает значениеtrue, когда путь от корня к этому узлу образует полное слово, которое было добавлено в дерево.
Пять основных операций над префиксным деревом:
- Insert: Добавление слова с созданием всех недостающих узлов по пути.
- Search: Проверка того, сохранено ли в дереве полное слово.
- StartsWith: Проверка того, начинается ли какое-либо из сохраненных слов с данного префикса.
- Delete: Удаление слова и очистка всех неиспользуемых ветвей.
- WordCount: Подсчет количества различных слов, хранящихся в дереве.
Давайте создадим класс Trie!
Попробуйте сами
В этом уроке нет задания по программированию.