Secondo l' articolo di Wikipedia sugli elenchi collegati , l'inserimento al centro di un elenco collegato è considerato O (1). Penso che sarebbe O (n). Non avresti bisogno di individuare il nodo che potrebbe essere vicino alla fine dell'elenco?
Questa analisi non tiene conto del ritrovamento dell'operazione del nodo (sebbene sia necessaria) e solo dell'inserimento stesso?
MODIFICA :
Gli elenchi collegati hanno diversi vantaggi rispetto agli array. L'inserimento di un elemento in un punto specifico di un elenco è un'operazione a tempo costante, mentre l'inserimento in un array può richiedere lo spostamento di metà degli elementi o più.
La dichiarazione di cui sopra è un po 'fuorviante per me. Correggimi se sbaglio, ma penso che la conclusione dovrebbe essere:
Array:
- Trovare il punto di inserimento / cancellazione O (1)
- Esecuzione dell'inserimento / cancellazione O (n)
Elenchi collegati:
- Trovare il punto di inserimento / cancellazione O (n)
- Esecuzione dell'inserimento / cancellazione O (1)
Penso che l'unica volta in cui non dovresti trovare la posizione è se tieni una sorta di puntatore ad essa (come con la testa e la coda in alcuni casi). Quindi non possiamo affermare apertamente che gli elenchi collegati battono sempre gli array per le opzioni di inserimento / eliminazione.