Grafo con lista de adyacencia en C: ejercicio resuelto

Grafo con lista de adyacencia en C: ejercicio resuelto

Este ejercicio está programado para publicación diaria y sigue la estructura estándar del sitio: enunciado, solución y resultado esperado.

Enunciado

Resuelve el caso práctico y comprueba la salida por consola.

Solución en C

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#include <stdio.h>

#define N 4
int g[N][N] = {0};

void add_edge(int u, int v) { g[u][v] = 1; g[v][u] = 1; }

int main(void) {
    add_edge(0, 1); add_edge(0, 2);
    printf("0 conectado con 1: %d\n", g[0][1]);
    printf("2 conectado con 3: %d\n", g[2][3]);
    return 0;
}

Resultado esperado

1
2
0 conectado con 1: 1
2 conectado con 3: 0

Errores frecuentes

  • No validar retornos de funciones estándar.
  • Ignorar casos límite de índices, punteros o buffers.
  • No probar con entradas de ejemplo antes de publicar.

Aplicación práctica

Los grafos con lista de adyacencia son la representación más eficiente para grafos dispersos: redes, mapas y dependencias.

Siguiente ejercicio recomendado

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.