Назад к вопросам
Intern
95
questionbank
В чем разница между связанным списком и массивом?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Массив хранит элементы в смежных ячейках памяти, обеспечивая быстрый доступ по индексу (O(1)). Размер фиксирован при создании.
Связанный список хранит элементы в узлах, каждый из которых содержит данные и ссылку на следующий узел. Доступ к элементу по индексу требует обхода (O(n)). Размер динамический.
Основные различия:
| Признак | Массив | Связанный список |
|---|---|---|
| Размещение | Смежные ячейки памяти | Узлы со ссылками |
| Доступ по индексу | Быстрый (O(1)) | Медленный (O(n)) |
| Вставка/удаление | Медленное (O(n)) | Быстрое (O(1)) в начале/конце списка |
| Размер | Фиксированный | Динамический |
Пример добавления элемента в массив требует создания нового массива и копирования элементов:
// Добавление элемента в массив
int[] originalArray = {1, 2, 3};
int newValue = 4;
int[] newArray = new int[originalArray.length + 1];
System.arraycopy(originalArray, 0, newArray, 0, originalArray.length);
newArray[originalArray.length] = newValue;
Пример добавления элемента в связанный список (в конец):
// Добавление элемента в связанный список
class Node {
int data;
Node next;
Node(int d) { data = d; next = null; }
}
// ...
Node head = new Node(1);
Node second = new Node(2);
head.next = second;
Node tail = second; // Предположим second - последний элемент
Node newNode = new Node(3);
tail.next = newNode;
tail = newNode; // Обновляем tail