Back to questions
Junior — Middle
63
Объясните механизм работы метода get() в структуре данных LinkedList, и как он извлекает элемент по индексу.
Answer from AI
sobes.tech AI
В структуре данных LinkedList метод get(int index) извлекает элемент по заданному индексу, проходя по списку с начала (или с конца, если это двусвязный список) и переходя от одного узла к следующему, пока не достигнет нужной позиции.
Пояснение:
- LinkedList состоит из узлов (Node), каждый из которых содержит данные и ссылку на следующий узел.
- Чтобы получить элемент по индексу, метод начинает с головы списка и последовательно переходит по ссылкам, увеличивая счётчик.
- Когда счётчик достигает нужного индекса, возвращается значение текущего узла.
Это означает, что время доступа к элементу по индексу — O(n), где n — индекс, в отличие от массива, где доступ O(1).
Пример упрощённого метода get в Java:
public E get(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException();
}
Node<E> current = head;
for (int i = 0; i < index; i++) {
current = current.next;
}
return current.data;
}