Згідно зі статтею Вікіпедії у зв’язаних списках , вставлення в середині зв'язаного списку вважається O (1). Я б подумав, що це буде O (n). Чи не потрібно вам знаходити вузол, який може бути в кінці списку?
Чи не враховує цей аналіз знаходження операції з вузлом (хоча це потрібно), а лише сама вставка?
Редагувати :
Пов'язані списки мають ряд переваг перед масивами. Вставка елемента в конкретну точку списку - це операція постійного часу, тоді як для вставки в масив може знадобитися переміщення половини елементів або більше.
Наведене вище твердження мене трохи вводить в оману. Виправте мене, якщо я помиляюся, але, думаю, висновок повинен бути таким:
Масиви:
- Пошук точки вставки / видалення O (1)
- Виконання вставки / видалення O (n)
Пов'язані списки:
- Пошук точки вставки / видалення O (n)
- Виконання вставки / видалення O (1)
Я думаю, що єдиний раз, коли б вам не довелося знайти позицію, це якщо б ви тримали якийсь вказівник на нього (як у випадку з головою та хвостом у деяких випадках). Тож ми не можемо однозначно сказати, що пов'язані списки завжди б'ють масиви для опцій вставки / видалення.