Lista simplemente enlazada en C: ejercicio resuelto con inserción y borrado

  2 minutos

Si buscas lista simplemente enlazada en C ejercicio resuelto, este ejemplo cubre operaciones básicas reales: insertar, buscar y borrar.

Implementa una lista enlazada simple con funciones para:

  • insertar al inicio,
  • buscar un valor,
  • borrar un nodo,
  • liberar memoria.
#include <stdio.h>
#include <stdlib.h>

typedef struct Nodo {
    int valor;
    struct Nodo *sig;
} Nodo;

Nodo *insertar_inicio(Nodo *head, int valor) {
    Nodo *n = malloc(sizeof(Nodo));
    if (!n) return head;
    n->valor = valor;
    n->sig = head;
    return n;
}

Nodo *borrar_valor(Nodo *head, int valor) {
    Nodo *act = head, *prev = NULL;
    while (act && act->valor != valor) {
        prev = act;
        act = act->sig;
    }
    if (!act) return head;
    if (!prev) head = act->sig;
    else prev->sig = act->sig;
    free(act);
    return head;
}

int contiene(Nodo *head, int valor) {
    while (head) {
        if (head->valor == valor) return 1;
        head = head->sig;
    }
    return 0;
}

void imprimir(Nodo *head) {
    while (head) {
        printf("%d ", head->valor);
        head = head->sig;
    }
    printf("\n");
}

void liberar(Nodo *head) {
    while (head) {
        Nodo *tmp = head;
        head = head->sig;
        free(tmp);
    }
}

int main(void) {
    Nodo *lista = NULL;
    lista = insertar_inicio(lista, 30);
    lista = insertar_inicio(lista, 20);
    lista = insertar_inicio(lista, 10);

    printf("Contiene 20: %d\n", contiene(lista, 20));
    lista = borrar_valor(lista, 20);
    imprimir(lista);

    liberar(lista);
    return 0;
}
Contiene 20: 1
10 30
  • Perder el nuevo head al insertar o borrar.
  • No tratar el borrado del primer nodo.
  • No liberar memoria al final.

Las listas simples se usan en colas de trabajo ligeras y procesamiento incremental de eventos.

Si quieres una ruta completa con progresión real de dificultad:

Sí. Trabaja patrones que aparecen mucho en prácticas, entrevistas técnicas y evaluaciones de programación en C.

En Programación en C en 100 ejercicios resueltos y en Ejercicios C. Kindle Unlimited: Ver en Amazon.

Empieza con entradas pequeñas, prueba casos límite (vacío, un elemento y capacidad máxima) y luego reescribe la solución sin copiarla.