Массивы и связанные списки — две из самых популярных линейных структур данных. Давайте посмотрим на некоторые из их основных различий:
Связанные списки
1. Выделение памяти
Массив
Весь массив хранится в непрерывном блоке памяти.
Связанный список
Различные элементы хранятся в разных местах памяти.
2. Размер
Массив
Размер массива указывается во время объявления и не может быть изменен впоследствии.
Связанный список
Элементы данных могут быть добавлены или удалены из связанного списка по желанию.
3. Использование пространства
Массив
Из-за непрерывного распределения массив может храниться только там, где доступен большой блок свободного пространства.
Связанный список
Различные элементы хранятся в разных местах; следовательно, связанные списки можно составлять на небольших участках свободного пространства.
4. Расход места
Массив
В целом потребление места меньше.
Связанный список
Для хранения указателей рядом с узлами требуется место.
5. Доступ к элементам
Массив
Любой элемент можно напрямую проиндексировать в O ( 1)O(1) O (1) время наихудшего случая.
Связанный список
Список необходимо пройти от первого элемента до требуемого элемента, принимая O ( n ) O (n) O (n) время наихудшего случая.
6. Параметры поиска
Массив
Линейный поиск и двоичный поиск (если отсортировано).
Связанный список
Только линейный поиск.