Lista simplemente enlazada en C: ejercicio resuelto
Si buscas lista simplemente enlazada en C ejercicio resuelto, este ejemplo cubre operaciones básicas reales: insertar, buscar y borrar.
Enunciado
Implementa una lista enlazada simple con funciones para:
- insertar al inicio,
- buscar un valor,
- borrar un nodo,
- liberar memoria.
Solución en C
#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;
}Salida esperada
Contiene 20: 1
10 30Errores frecuentes
- Perder el nuevo
headal insertar o borrar. - No tratar el borrado del primer nodo.
- No liberar memoria al final.
Aplicación práctica
Las listas simples se usan en colas de trabajo ligeras y procesamiento incremental de eventos.
Siguiente ejercicio recomendado
- Cola en C (queue): ejercicio resuelto con array circular
- Pila en C (stack): ejercicio resuelto con push, pop y peek
- Búsqueda binaria en C: ejercicio resuelto en array ordenado
- Todos los ejercicios de C
Práctica guiada y libro completo
Si quieres una ruta completa con progresión real de dificultad:
FAQ
¿Este ejercicio sirve para entrevistas y exámenes de C?
Sí. Trabaja patrones que aparecen mucho en prácticas, entrevistas técnicas y evaluaciones de programación en C.
¿Dónde seguir con más ejercicios resueltos de C?
En Programación en C en 100 ejercicios resueltos y en Ejercicios C. Kindle Unlimited: Ver en Amazon.
¿Cómo practicar este tipo de ejercicio para mejorar más rápido?
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.