Saltar al contenido

La cola y su invariante

La lista guarda dos direcciones:

  • cabeza: el primer nodo;
  • cola: el último nodo.

Con la cola, agregar al final es: enlazar el nodo nuevo después de la cola y mover la cola al nodo nuevo. Sin recorrer.

En la figura, arriba la lista vacía y, debajo, una lista con cuatro valores.

Cabeza y cola, con la lista vacía y con cuatro valoresArriba, la lista vacía: cabeza y cola valen nada, cada una con una barra diagonal. Abajo, una lista con 12, 7, 31 y 9: cabeza apunta al primer nodo, el 12, y cola apunta al último, el 9, cuyo siguiente es nada.Lista vacíacabezanadacolanadaLista con cuatro valorescabezacola127319
Vacía: cabeza = nada y cola = nada. Si no, cabeza es el primer nodo y cola es el último (cola.siguiente = nada).

El precio es un invariante más:

Texto
si la lista está vacía: cabeza = nada y cola = nadasi no: cola es el último nodo (cola.siguiente = nada)

Toda operación que cambie el último nodo, o vacíe la lista, tiene que mantenerlo.

¿En cuáles de estas operaciones puede tener que actualizarse la cola?