Скажем, мы просматриваем график и хотим быстро определить, был ли узел виден ранее или нет. У нас есть несколько предварительных условий.
- Узлы помечены целыми значениями 1..N
- График реализован с узлами, имеющими список смежности
- Каждое целочисленное значение от 1..N встречается на графике, который имеет размер N
Какие-нибудь идеи для того, чтобы сделать это чисто функциональным способом? (Хеш-таблицы или массивы не допускаются).
Мне нужна структура данных с двумя работающими над ней функциями; add (добавляет встречающееся целое число) и lookup (проверяет, было ли добавлено целое число). Оба должны предпочтительно занимать O (n) время, амортизированное для N повторений.
Возможно ли это?