Открыть сервис

Связный список

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

История

Концепция связного списка была разработана в 1955—1956 годах Алленом Ньюэллом, Клиффом Шоу и Гербертом Саймоном в рамках исследований по обработке символьной информации и созданию эвристических программ. Они использовали связные списки для представления сложных структур данных в языке программирования IPL (Information Processing Language). В 1960 году эта структура была реализована в языке Lisp, где списки стали основной формой представления данных и кода. Впоследствии связные списки были реализованы практически во всех языках программирования общего назначения, как в виде встроенных библиотек, так и в виде пользовательских структур.

Классификация

Связные списки классифицируются по направлению связей и по способу организации.

По направлению связей

По способу организации

Устройство и основные операции

Узел списка

Узел (node) — это базовый элемент. В простейшем односвязном списке узел содержит поле данных (может быть любого типа — число, строка, объект) и поле указателя next. В двусвязном списке добавляется поле prev. В языках со сборкой мусора (Java, C#, Python) узлы создаются как объекты; в языках без сборки мусора (C, C++) память под узлы выделяется динамически и должна освобождаться явно.

Основные операции

Применение

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

Преимущества и недостатки

Преимущества

Недостатки

Реализация в языках программирования

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →