Saltar al contenido

Llegar a la posición i

Para leer el valor de la posición 3, no hay cuenta posible: hay que empezar en la cabeza y seguir 3 enlaces.

En la figura, los números 1, 2 y 3 cuentan los saltos hasta el nodo de la posición 3.

Llegar a la posición 3 siguiendo enlacesLa lista 12, 7, 31, 9 con la cabeza apuntando al primer nodo. Para leer la posición 3, el nodo del 9 con borde grueso, hay que empezar en la cabeza y seguir tres enlaces, numerados 1, 2 y 3, de nodo en nodo.cabeza127319123posición 0posición 1posición 2posición 3
Tres saltos (1, 2, 3) para llegar a la posición 3. Borde grueso: el nodo que se lee.
Texto
función leer(lista, i):    nodo ← lista.cabeza    repetir i veces:        nodo ← nodo.siguiente    devolver nodo.valor

Por eso los costos de la lista son al revés que los del array:

  • insertar o borrar después de un nodo que ya tienes: O(1), cambia uno o dos enlaces;
  • llegar a la posición i: O(i);
  • insertar en la posición i: O(i) para llegar más O(1) para enlazar.

La condición «que ya tienes» es la que muchas veces se olvida. «Insertar en medio de una lista es O(1)» solo es cierto si alguien ya te dio el nodo.

Su fila en la tabla de costos

Esta es la fila de la lista simple con solo cabeza. Los costos de «después de un nodo que ya tienes» llevan esa condición.

Representación leer(i) insertar o borrar al inicio insertar al final borrar al final insertar o borrar en i
lista simple, solo cabeza O(i) O(1) O(n) O(n) O(i) para llegar, O(1) para enlazar

Lee el recorrido de esta página. Al pasar al siguiente momento, este cuenta como leído.