Поисковые структуры

Сама задача поиска очень абстрактная.

Ассоциативные массивы

Абстрактная структура данных ассоциативный массив (assoc) — структура, в которой хранятся значения вместе с ассоциированными с ними уникальными ключами.

Задача поиска в этой структуре — найти значение, связанное с данным ключом, или установить, что такого значения в структуре нет.

Формально, нам задано инъективное отображение ассоциации a ⁣:KVa \colon K \injto V между множеством ключей KK и множеством значений VV.

Иногда один ключ может быть связан с несколькими значениями. Такое расширение ассоциативного массива называется мультиассоциативным массивом (multiassoc).

При поиске возвращается коллекция (итератор, набор) из всех значений, ассоциированных с данным ключом. Если ничего не найдено, то возвращаемая коллекция пустая.

Формально, нам отображение ассоциации превращается в отображение a ⁣:K2Va \colon K \injto 2^V между множеством ключей KK и булеаном множества значений VV.

На самом деле структура коллекции может быть разной. Это может быть неупорядоченное множество, а может быть упорядоченный список, и вообще все что угодно.

Множества