Escudo ITSL Avatar docente
Unidad III

3.3 Listas Enlazadas

M.A.T.S.I. Juan Agustín Aragón Guardado
▶ Usa las flechas para avanzar
TecNMInstituto Tecnológico Superior de Lerdo
TecNM · ITSL
3.3 · Definición

¿Qué es una Lista Enlazada?

Es una estructura de datos lineal y dinámica formada por elementos llamados nodos. Cada nodo almacena un dato y una referencia que indica cuál es el siguiente nodo de la lista.

A diferencia de una pila o una cola implementada con arreglos, una lista enlazada no necesita reservar desde el inicio un número fijo de celdas: puede crecer o disminuir conforme se agregan o eliminan nodos.

🔗 Idea clave: cada nodo “conoce” al siguiente. Para llegar a un elemento, comenzamos en Inicio y seguimos los enlaces.
Aquí no hay Top, Frente ni Final obligatorios: el punto de entrada principal es Inicio. 🔗
Avatar
3.3 · Representación gráfica

Representación gráfica de una Lista Enlazada

La variable Inicio apunta al primer nodo. Cada nodo contiene el dato y una referencia Siguiente. El último nodo apunta a null.

Inicio
Dato A
sig
Dato B
sig
Dato C
null
Inicio → Nodo A → Nodo B → Nodo C → null
Dato

La información que queremos almacenar: una canción, alumno, producto, tarea, etc.

Siguiente

Referencia que guarda la dirección lógica del próximo nodo.

null

Indica que ya no existe otro nodo después: hemos llegado al final.

3.3 · Comportamiento

¿Cómo se comporta una Lista Enlazada?

Acceso secuencial

Para llegar al nodo 4 debemos pasar antes por los nodos 1, 2 y 3. No existe acceso directo por índice como en un arreglo.

Tamaño dinámico

Los nodos se crean cuando se necesitan. No hay un Max fijo propio de la estructura; el límite práctico depende de la memoria disponible.

Orden flexible

Una lista no obliga a trabajar como LIFO o FIFO. Podemos insertar o eliminar al inicio, al final o en posiciones intermedias.

Enlaces, no celdas

Lo importante no es dónde está físicamente cada nodo, sino que cada referencia Siguiente mantenga conectada la cadena.

Regla mental: si se rompe un enlace sin guardar antes la referencia necesaria, puedes perder el acceso al resto de la lista. Primero conserva la referencia; después modifica el enlace.
En una lista no preguntas “¿en qué celda está?”, sino “¿a qué nodo apunta el siguiente?”.
Avatar
3.3 · Operaciones básicas

Variables y métodos de una Lista Enlazada

Clase Nodo
  • Dato: información almacenada.
  • Siguiente: referencia al próximo nodo.
  • Un nodo recién creado normalmente inicia con Siguiente = null.
Clase ListaEnlazada
  • Inicio: referencia al primer nodo.
  • EstaVacia(): verifica si Inicio == null.
  • InsertarFinal(): recorre y enlaza el nodo nuevo al final.
  • EliminarPrimero(): mueve Inicio al segundo nodo.
  • Buscar(): recorre nodo por nodo hasta encontrar el dato.
💡 Conexión con la práctica 3.3: la lista de reproducción usa exactamente Nodo + Inicio + InsertarFinal + EliminarPrimero, sin arreglos ni variable Max.
Pruébalo tú mismo

Simulador: enlaza, recorre y elimina nodos

Agrega datos al inicio o al final. Observa cómo cambia la cadena sin mover los demás nodos a celdas contiguas.

Inicio = null · Lista vacía
Prueba insertar al inicio: ahí no necesitas recorrer nada. Es una operación muy rápida. ⚡
Avatar
3.3 · Ejemplos de la vida cotidiana

¿Dónde vemos listas enlazadas?

🎵

Lista de reproducción

Cada canción puede representar un nodo. La referencia Siguiente permite avanzar a la canción que continúa.

🧭

Ruta de puntos

Cada parada puede apuntar a la siguiente. Si insertas una nueva parada, modificas enlaces sin reconstruir toda la colección.

📝

Lista dinámica de tareas

La cantidad de tareas puede cambiar durante la ejecución y cada nuevo elemento se enlaza a los existentes.

🎯 Úsala cuando la cantidad de elementos cambia con frecuencia y necesitas insertar o eliminar nodos sin depender de un arreglo de tamaño fijo.
3.3 · Tipos de Listas

Tres formas de conectar los nodos

La diferencia entre los tipos de listas está en qué referencias guarda cada nodo y hacia dónde podemos recorrer la estructura.

1

Lista simplemente enlazada

Inicio →
Asig
→
Bsig
→
Cnull

Cada nodo conoce solamente al siguiente.

Se recorre: A → B → C
2

Lista doblemente enlazada

antAsig
⇄
antBsig
⇄
antCsig

Cada nodo conoce al anterior y al siguiente.

Se puede avanzar y regresar: A ⇄ B ⇄ C
3

Lista circular

Asig
→
Bsig
→
Csig
↩ vuelve a A

El último nodo vuelve a enlazarse con el primero.

No termina en null: C → A → B → C...
¿Qué significa la eficiencia aquí?
Insertar al inicio O(1)

No necesitas recorrer la lista. Solo cambias la referencia Inicio.

Buscar un dato O(n)

Puede ser necesario revisar nodo por nodo hasta encontrarlo.

Insertar al final O(n)

Si solo tienes Inicio, debes recorrer hasta llegar al último nodo.

💡 Si además guardas una referencia Final, insertar al final puede realizarse en O(1).
No memorices nombres: mira las flechas. Las flechas te dicen qué tipo de lista es. 🔗
Avatar
Idea que se queda

Nodos conectados, tamaño flexible

Una lista enlazada es una cadena de nodos. Cada nodo guarda un dato y sabe cuál es el siguiente. Inicio nos da acceso a la cadena y null marca el final en una lista simple.
TecNM · Instituto Tecnológico Superior de Lerdo · M.A.T.S.I. Juan Agustín Aragón Guardado
En la siguiente presentación construimos una lista enlazada real en C# — ¡una lista de reproducción! 🎵
Avatar
Gracias FRIOSA por inspirarme a dar clases y a todos esos grandes maestros que forman más allá del aula.
1 / 9