геометрический поиск в красно-черном бинарном дереве поиска

В настоящее время я реализую красно-черное двоичное дерево поиска для поиска по геометрическим интервалам. Я сохраняю сегменты дерева, содержащие начальную точку и конечную точку, где начальная точка является ключевой записью в дереве. Я беспокоюсь о том, чтобы иметь возможность сохранять в сегменты дерева, которые имеют дублирующую начальную точку (или, если хотите, имеют один и тот же ключ). Это своего рода мультикарта C++ для геометрического поиска. Решение, которое я придумал, таково: для каждой записи, у которой есть дубликаты ключей, сохраните список (или вектор) сегментов с соответствующими дубликатами ключей. Проблемы, которые я вижу с этим подходом, двояки: 1. Это снизит эффективность поиска, если есть большое количество повторяющихся ключей. 2. Мне придется использовать больше памяти для хранения дубликатов ключей.

Мой вопрос: есть ли другой способ реализовать это более эффективно?


person PhonoDots    schedule 01.12.2013    source источник


Ответы (1)


Я бы рекомендовал не использовать обычное двоичное дерево поиска! Вместо этого взгляните на деревья интервалов: я подозреваю, что эта структура вам больше подходит.

person Dietmar Kühl    schedule 01.12.2013
comment
Привет, Дитмар, спасибо за ответ. Деревья интервалов и деревья сегментов реализованы с использованием красно-черного BST. Спасибо за ссылку, но она не отвечает на мой вопрос. - person PhonoDots; 01.12.2013