Развёрнутый связный список

Развёрнутый связный список
Unrolled linked lists (1-8).PNG

Развёрнутый связный списоксписок, каждый физический элемент которого содержит несколько логических (обычно в виде массива, что позволяет ускорить доступ к отдельным элементам).

Позволяет значительно уменьшить расход памяти и увеличить производительность по сравнению с обычным списком. Особенно большая экономия памяти достигается при малом размере логических элементов и большом их количестве — так, односвязный список из 10 тысяч четырёхбайтных целых чисел при четырёхбайтной же адресации памяти займет 40 тысяч байт под собственно значения, плюс 40 тысяч байт под адреса, итого 80 тысяч байт; если же объединить числа в 100 массивов по 100 элементов, расход памяти на адреса упадёт до 400 байт, и суммарный расход составит 40400 байт.

Прирост производительности достигается за счёт того, что большая часть операций проводится над относительно небольшими массивами, которые обычно целиком помещаются в кэш-памяти. Благодаря этому, быстродействие программы может быть даже выше, чем при работе с обычными массивами. В развёрнутый список легко можно добавлять новые элементы — без необходимости переписывать весь массив, что является большой проблемой при работе с обычными массивами.

При реализации необходимо тщательно выбирать размер «блока» (количество элементов в массивах). При слишком большом размере блока список начинает страдать от тех же проблем, что и обыкновенный массив: долгая вставка элементов в начало или середину, долгое удаление элементов оттуда же, и т.п. При слишком маленьком — увеличивается расход памяти.

См. также

  • Кодирование CDR (en:CDR coding), сходная техника для уменьшения размеров списков и улучшения использования кешей.
  • Список с пропусками (skip list), вариация связных списков с быстрым обходом, но с медленной вставкой и удалением.
  • B-tree и T-tree, структуры данных, схожие с Р.с.с. (являются развернутыми бинарными деревьями)
  • XOR-связный список, двусвязный список, использующий 1 ячейку памяти для хранения двух указателей.

Ссылки




Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


Смотреть что такое "Развёрнутый связный список" в других словарях:

  • Связный список — В информатике, связный список  базовая динамическая структура данных, состоящая из узлов, каждый из которых содержит как собственно данные, так и одну или две ссылки («связки») на следующий и/или предыдущий узел списка.[1] Принципиальным… …   Википедия

  • XOR-связный список — структура данных, похожая на обычный двусвязный список, однако в каждом элементе хранящая только один адрес результат выполнения операции XOR над адресами предыдущего и следующего элементов списка. Для того, чтобы перемещаться по списку,… …   Википедия

  • Список (информатика) — У этого термина существуют и другие значения, см. Список. В информатике, список (англ. list)  это абстрактный тип данных, представляющий собой упорядоченный набор значений, в котором некоторое значение может встречаться более одного… …   Википедия

  • Список структур данных — …   Википедия

  • Двусвязный список — В информатике, cвязный список  структура данных, состоящая из узлов, каждый из которых содержит как собственные данные, так и одну или две ссылки («связки») на следующее и/или предыдущее поле. Принципиальным преимуществом перед массивом является… …   Википедия

  • Односвязный список — В информатике, cвязный список  структура данных, состоящая из узлов, каждый из которых содержит как собственные данные, так и одну или две ссылки («связки») на следующее и/или предыдущее поле. Принципиальным преимуществом перед массивом является… …   Википедия

  • Связанный список — В информатике, cвязный список  структура данных, состоящая из узлов, каждый из которых содержит как собственные данные, так и одну или две ссылки («связки») на следующее и/или предыдущее поле. Принципиальным преимуществом перед массивом является… …   Википедия

  • Xor-связанный список — XOR связный список структура данных, похожая на обычный двусвязный список, однако в каждом элементе хранящая только один адрес результат выполнения операции XOR над адресами предыдущего и следующего элементов списка. Для того, чтобы перемещаться… …   Википедия

  • Мультисписок — В информатике, мультисписок (англ. multilist) это абстрактный тип данных, представляющий собой упорядоченный набор значений, в котором некоторое значение может встречаться более одного раза. Экземпляр списка является компьютерной реализацией …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»