Las listas enlazadas son estructuras dinámicas. Eso significa que pueden crecer o cambiar durante la ejecución del programa.

En esta lección vas a aprender:

  • qué es una lista enlazada
  • qué es un nodo
  • recorrido en listas
  • búsqueda en listas
  • inserción en listas

¿Qué es una lista enlazada?

Es una estructura formada por nodos.

Cada nodo suele contener:

  • un dato
  • un puntero al siguiente nodo

Nodo en C

struct Nodo {
    int dato;
    struct Nodo* siguiente;
};

Recorrido

Recorrer una lista significa visitar nodo por nodo hasta llegar al final.

actual = cabeza;
while (actual != NULL) {
    printf("%d\n", actual->dato);
    actual = actual->siguiente;
}

Búsqueda

Buscar en una lista implica recorrerla hasta encontrar el valor buscado.

while (actual != NULL) {
    if (actual->dato == buscado) {
        encontrado = 1;
    }
    actual = actual->siguiente;
}

Inserción

Insertar puede hacerse al inicio, al final o en una posición intermedia.

Inserción al inicio

nuevo->siguiente = cabeza;
cabeza = nuevo;

Resumen

  • una lista enlazada está formada por nodos
  • permite recorrido, búsqueda e inserción
  • es más flexible que un arreglo de tamaño fijo

Idea final

La lista enlazada muestra un cambio de mentalidad muy fuerte: ya no pensás en posiciones fijas, sino en enlaces entre nodos.