|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.12.2010, 20:45 | #1 |
Регистрация: 01.12.2010
Сообщений: 3
|
Гибрид массива и списка
Вопрос по структурам данных. Кто нибудь знает или может быть видел где нибудь структуру, позволяющую реализовать массив элементов, с возможностью быстрой вставки (добавления) и удаления элемента в любом месте массива и с возможностью быстрого доступа по индексу за время О(log2(n)), или быстрее? Естественно, структура должна быть самобалансирующейся за такое же время или быстрее.
|
02.12.2010, 15:05 | #2 | |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 558
|
Цитата:
Код на PureBasic Код:
|
|
02.12.2010, 18:07 | #3 |
Регистрация: 01.12.2010
Сообщений: 3
|
Нет, имелось ввиду, структура не как тип данных, а как некоторая модель хранения и организации. В любом случае, вопрос уже решен. Решение находится в области деревьев с неявными индексами (ключами).
|
05.12.2010, 03:59 | #4 |
Форумчанин
Регистрация: 07.01.2010
Сообщений: 141
|
мапина? std::map<int, object>?
|
05.12.2010, 13:57 | #5 |
Регистрация: 01.12.2010
Сообщений: 3
|
Не совсем. В std::map реализовано красно-черное дерево с фиксированными ключами. В найденном решении ключи динамические, что позволяет использовать их в качестве индексов. Если интересно, схожее решение описано в статье про неявное декартово дерево: http://e-maxx.ru/algo/treap.
Последний раз редактировалось T42; 05.12.2010 в 14:00. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Чем отличается Очередь на базе списка от Очереди на базе массива? | TwiX | Общие вопросы C/C++ | 7 | 16.02.2011 12:17 |
Сумма и произведение элементов массива, удовлетворяющих условию (генерация float массива) | felodese | Помощь студентам | 1 | 11.11.2010 20:52 |
Удаление последнего элемента из списка и реверс этого списка. | Goose | Общие вопросы C/C++ | 8 | 16.05.2010 16:12 |
Гибрид 16 (DLL) и 32 (EXE) | Alex Cones | Общие вопросы Delphi | 2 | 21.02.2010 09:23 |