Я читал во многих статьях, где упоминалось, что связанный список будет работать хорошо, когда мы должны выполнить вставку / удаление в середине коллекции. Но у меня есть сомнения здесь. Я изучаю структуру данных, пожалуйста, дайте мне знать, если мое понимание неверно.
Предположим, если у нас есть 10 элементов в списке
индекс: - 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
предметов: - A | Я | Z | S | J | T | V | J | A | T
И я хочу удалить элемент с индексом 6, что означает «V», а затем другие элементы мы должны сдвинуть на один уровень вверх. Я понимаю, что это изменение является дорогостоящей операцией, когда у нас очень большой список.
В случае связанного списка нам не нужно сдвигать элементы, так как мы можем просто изменить предыдущий и следующий указатель на новый узел.
ПРИМЕР-
HeadNode A => D => Z => S => C => W => M => Q => E => T
Теперь предположим, что мы должны удалить W, тогда, согласно моему пониманию, мы должны пройти до W из головного узла (A). Так что это тоже дорогостоящая операция, как в списке, где мы перемещаем элементы после удаления.
Тогда как этот сценарий может быть преимуществом связанного списка над списком