Согласно статье Википедии о связанных списках , вставка в середину связанного списка считается O (1). Я бы подумал, что это будет O (n). Разве вам не нужно было бы найти узел, который может быть ближе к концу списка?
Разве этот анализ не учитывает обнаружение операции узла (хотя это необходимо) и только саму вставку?
ИЗМЕНИТЬ :
Связанные списки имеют несколько преимуществ перед массивами. Вставка элемента в определенную точку списка - это операция с постоянным временем, тогда как вставка в массив может потребовать перемещения половины элементов или более.
Приведенное выше утверждение меня немного вводит в заблуждение. Поправьте меня, если я ошибаюсь, но, думаю, вывод должен быть таким:
Массивы:
- Нахождение точки вставки / удаления O (1)
- Выполнение вставки / удаления O (n)
Связанные списки:
- Нахождение точки вставки / удаления O (n)
- Выполнение вставки / удаления O (1)
Я думаю, что единственный раз, когда вам не нужно будет искать позицию, это если вы сохранили какой-то указатель на нее (как в некоторых случаях с головой и хвостом). Поэтому мы не можем категорически сказать, что связанные списки всегда лучше массивов для опций вставки / удаления.