Структура данных с эффективными манипуляциями и извлечением как по ключу, так и по индексу

I ' m ищу структуру данных с функциональностью, например, OrderedDictionary в .NET, то есть ассоциативный набор (т.е. тот, который связывает ключ со значением ), который поддерживает порядок элементов (как и обычный List ).

Он должен иметь быстрый поиск как по индексу, так и по ключу.Он также должен иметь быструю операцию «добавления» (вставку нового элемента в конец) и быстрое удаление элементов с любым индексом (на основе индекса или ключа).

OrderedDictionary в .NET, если я не ошибаюсь, использует как хеш-таблицу, так и массив для хранения своих элементов. Таким образом, получение индекса на основе ключа (или наоборот) составляет O (n) , и, конечно, удаление элемента из середины массива составляет O (n) до начать с плюс добавленный поиск индекса по ключу при удалении по ключу.

Мой вопрос: существует ли более эффективная структура данных, удовлетворяющая моим условиям, или это действительно лучший вариант?

6
задан Upendra Chaudhari 20 October 2011 в 04:58
поделиться