Según el artículo de Wikipedia sobre listas enlazadas , insertar en medio de una lista enlazada se considera O (1). Creo que sería O (n). ¿No necesitaría ubicar el nodo que podría estar cerca del final de la lista?
¿Este análisis no tiene en cuenta el hallazgo de la operación del nodo (aunque es obligatorio) y solo la inserción en sí?
EDITAR :
Las listas enlazadas tienen varias ventajas sobre las matrices. La inserción de un elemento en un punto específico de una lista es una operación de tiempo constante, mientras que la inserción en una matriz puede requerir mover la mitad de los elementos, o más.
La afirmación anterior es un poco engañosa para mí. Corrígeme si me equivoco, pero creo que la conclusión debería ser:
Matrices:
- Encontrar el punto de inserción / eliminación O (1)
- Realización de la inserción / eliminación O (n)
Listas vinculadas:
- Encontrar el punto de inserción / eliminación O (n)
- Realización de la inserción / eliminación O (1)
Creo que la única vez que no tendrías que encontrar la posición es si mantienes algún tipo de puntero (como con la cabeza y la cola en algunos casos). Entonces, no podemos decir rotundamente que las listas vinculadas siempre superan a las matrices para las opciones de inserción / eliminación.