Sobes.tech
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;
}